Explorar el Código

[储值卡][修改]:过期与退款分离

release_toaliyun_real
Stormeye Wu hace 7 años
padre
commit
6409723ac9
Se han modificado 2 ficheros con 39 adiciones y 16 borrados
  1. +39
    -12
      mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java
  2. +0
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java

+ 39
- 12
mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java Ver fichero

@@ -1,9 +1,14 @@
package com.iformall.schedule; package com.iformall.schedule;


import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.config.PayProperty; import com.iformall.config.PayProperty;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.enums.EnumAppType; import com.iformall.enums.EnumAppType;
import com.iformall.enums.EnumCouponOrderStatus;
import com.iformall.enums.EnumCouponType;
import com.iformall.enums.EnumPayType; import com.iformall.enums.EnumPayType;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.*; import com.iformall.mapper.*;
import com.iformall.service.WxPayOrderService; import com.iformall.service.WxPayOrderService;
import com.iformall.service.WxRefundOrderService; import com.iformall.service.WxRefundOrderService;
@@ -15,6 +20,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;


import java.util.Date;
import java.util.List; import java.util.List;


@Component @Component
@@ -50,20 +56,41 @@ public class CouponOrderExpiringSchedule {


List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate(); List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate();


list.parallelStream().forEach(co -> {
// 券过期与退款分离
couponOrderExpire(co);

if(!co.getCouponType().equals(EnumCouponType.CARD_MULTIMCH.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());
}
}


for(WxCouponOrder co:list) {

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());
continue;
}
private void couponOrderExpire(WxCouponOrder co) {
// 标记 couponOrder过期
WxCouponOrder wxCouponOrder = new WxCouponOrder();
wxCouponOrder.setId(co.getId());
if(co.getCouponType().equals(EnumCouponType.CARD_MULTIMCH.getCode())) {
wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.CARD_OVER_TIME.getCode()); // 卡线下退款
} else {
wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()); //券已过期
}
wxCouponOrder.setUpdateDate(new Date());
try {
wxCouponOrderMapper.updateByPrimaryKeySelective(wxCouponOrder);
} catch (Exception e) {
logger.error("db failed: couponOrder-" + wxCouponOrder.getId() + ", e:" + e.getMessage());
} }
} }
} }

+ 0
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java Ver fichero

@@ -300,10 +300,6 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
throw new MallinkException(ErrorCode.REFUND_PAY_ORDER_IS_ZERO); throw new MallinkException(ErrorCode.REFUND_PAY_ORDER_IS_ZERO);
} }


if (wxCouponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode())) {
logger.error("已过期: couponOrder-" + couponOrderId);
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME);
}
if (wxCouponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode())) { if (wxCouponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode())) {
logger.error("已退款: couponOrder-" + couponOrderId); logger.error("已退款: couponOrder-" + couponOrderId);
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME);


Cargando…
Cancelar
Guardar