Przeglądaj źródła

[库存][修改]:加transition

release_toaliyun_real
Stormeye Wu 7 lat temu
rodzic
commit
5ba03d307e
1 zmienionych plików z 55 dodań i 47 usunięć
  1. +55
    -47
      mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java

+ 55
- 47
mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java Wyświetl plik

@@ -59,7 +59,7 @@ public class CouponOrderExpiringSchedule {

List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredFreeCouponOrderByValidDate();
list.stream().forEach(co -> {
// 券过期
// 券过期,更改状态及库存退回
couponOrderExpire(co);
});

@@ -72,56 +72,17 @@ public class CouponOrderExpiringSchedule {
List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate();

list.stream().forEach(co -> {
// 券过期与退款分离
// 券过期,更改状态及库存退回
couponOrderExpire(co);

// 非储值卡, 可以退款
if(!co.getCouponType().equals(EnumCouponType.CARD_MULTIMCH.getCode())
&& !co.getAutoRefund().equals(EnumCouponAutoRefund.UNSUPPORTED.getCode())) {
WxAppinfo appinfo = new WxAppinfo();
appinfo.setTenantId(co.getTenantId());
appinfo.setType(EnumAppType.B.getCode());
appinfo = wxAppinfoMapper.findList(appinfo).get(0);

try {
wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, co.getId(), EnumPayType.PAY_AUTO_REFUND, null);
} catch (Exception e) {
logger.error("退款失败:"+e.getMessage()+"couponOrderId="+co.getId());
}
}

if (co.getAutoRefund().equals(EnumCouponAutoRefund.UNSUPPORTED.getCode())){
// 微信分账
try {
WxPayOrder wxPayOrder = new WxPayOrder();
wxPayOrder.setTenantId(co.getTenantId());
wxPayOrder.setOrderId(co.getOrderId());
wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
wxPayOrder = wxPayOrderMapper.selectOne(wxPayOrder);
if (wxPayOrder != null && wxPayOrder.getShare().equals(EnumPayShare.YES.getCode())) {
WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto();
wxSharingOrderDto.setcUserId(wxPayOrder.getcUserId());
wxSharingOrderDto.setMerchantId(0L);
wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_FINISH.getCode());
wxSharingOrderDto.setPayAmount(wxPayOrder.getPayAmount());
wxSharingOrderDto.setOrderId(wxPayOrder.getId());
wxSharingOrderDto.setPayTimeStart(wxPayOrder.getPayTimeStart());
wxSharingOrderDto.setPayTimeEnd(wxPayOrder.getPayTimeEnd());
wxSharingOrderDto.setTenantId(wxPayOrder.getTenantId());
wxSharingOrderDto.setTransactionId(wxPayOrder.getTransactionId());
wxSharingOrderDto.setShareAmount(wxPayOrder.getShareAmount());
wxProfitSharingOrderService.finishSharingOrder(wxSharingOrderDto);
}

} catch (Exception e) {
logger.error("券过期不退款: " + co.getId() + " ERROR:" + e.getMessage());
}

}
// 退款
couponOrderExpireRefund(co);
});
}

private void couponOrderExpire(WxCouponOrder co) {


@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void couponOrderExpire(WxCouponOrder co) {
// 标记 couponOrder过期
WxCouponOrder updateRecord = new WxCouponOrder();
updateRecord.setId(co.getId());
@@ -138,6 +99,53 @@ public class CouponOrderExpiringSchedule {
if(order != null) {
wxOrderService.stockBack(order);
}
}

private void couponOrderExpireRefund(WxCouponOrder co) {
// 非储值卡, 可以退款
if(!co.getCouponType().equals(EnumCouponType.CARD_MULTIMCH.getCode())
&& !co.getAutoRefund().equals(EnumCouponAutoRefund.UNSUPPORTED.getCode())) {
WxAppinfo appinfo = new WxAppinfo();
appinfo.setTenantId(co.getTenantId());
appinfo.setType(EnumAppType.B.getCode());
appinfo = wxAppinfoMapper.findList(appinfo).get(0);

try {
wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, co.getId(), EnumPayType.PAY_AUTO_REFUND, null);
} catch (MallinkException e) {
logger.error("退款失败:"+e.getMessage()+"couponOrderId="+co.getId());
throw new MallinkException(e.getErrorCode(), e.getMessage());
}
}

if (co.getAutoRefund().equals(EnumCouponAutoRefund.UNSUPPORTED.getCode())){
// 微信分账
try {
WxPayOrder wxPayOrder = new WxPayOrder();
wxPayOrder.setTenantId(co.getTenantId());
wxPayOrder.setOrderId(co.getOrderId());
wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
wxPayOrder = wxPayOrderMapper.selectOne(wxPayOrder);
if (wxPayOrder != null && wxPayOrder.getShare().equals(EnumPayShare.YES.getCode())) {
WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto();
wxSharingOrderDto.setcUserId(wxPayOrder.getcUserId());
wxSharingOrderDto.setMerchantId(0L);
wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_FINISH.getCode());
wxSharingOrderDto.setPayAmount(wxPayOrder.getPayAmount());
wxSharingOrderDto.setOrderId(wxPayOrder.getId());
wxSharingOrderDto.setPayTimeStart(wxPayOrder.getPayTimeStart());
wxSharingOrderDto.setPayTimeEnd(wxPayOrder.getPayTimeEnd());
wxSharingOrderDto.setTenantId(wxPayOrder.getTenantId());
wxSharingOrderDto.setTransactionId(wxPayOrder.getTransactionId());
wxSharingOrderDto.setShareAmount(wxPayOrder.getShareAmount());
wxProfitSharingOrderService.finishSharingOrder(wxSharingOrderDto);
}

} catch (MallinkException e) {
logger.error("券过期不退款: " + co.getId() + " ERROR:" + e.getMessage());
throw new MallinkException(e.getErrorCode(), e.getMessage());
}

}
}
}

Ładowanie…
Anuluj
Zapisz