Просмотр исходного кода

更新退款bug

release_toaliyun_real
xiaohanzi 6 лет назад
Родитель
Сommit
19f0aec810
3 измененных файлов: 26 добавлений и 27 удалений
  1. +19
    -21
      mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java
  2. +3
    -2
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  3. +4
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java

+ 19
- 21
mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java Просмотреть файл

@@ -13,6 +13,7 @@ import com.iformall.service.WxRefundOrderService;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -51,11 +52,13 @@ public class CouponOrderExpiringSchedule {
// @Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 // @Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次
public void couponOrderExpiringSchedule() { public void couponOrderExpiringSchedule() {


CouponOrderExpiringSchedule proxy = (CouponOrderExpiringSchedule) AopContext.currentProxy();
List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredFreeCouponOrderByValidDate(); List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredFreeCouponOrderByValidDate();
list.stream().forEach(co -> { list.stream().forEach(co -> {
// 券过期,更改状态及库存退回 // 券过期,更改状态及库存退回
try { try {
couponOrderExpire(co, true);
proxy.couponOrderExpire(co, true);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
} }
@@ -64,31 +67,25 @@ public class CouponOrderExpiringSchedule {


} }


@Scheduled(cron = "0 5 0 * * ?") // 每天凌晨00:05
@Scheduled(cron = "0 0/2 * * * ?") // 每天凌晨00:05
// @Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 // @Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次
public void couponOrderRefundSchedule() { public void couponOrderRefundSchedule() {

List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate(); List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate();
CouponOrderExpiringSchedule proxy = (CouponOrderExpiringSchedule) AopContext.currentProxy();
list.stream().forEach(co -> { list.stream().forEach(co -> {
// 券过期,更改状态及库存退回
try {
couponOrderExpire(co, false);
} catch (Exception e) {
logger.error(e.getMessage());
}

// 退款
try {
couponOrderExpireRefund(co, true);
} catch (Exception e) {
logger.error(e.getMessage());
}

refund(co,proxy);
}); });
} }



@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void refund(WxCouponOrder order,CouponOrderExpiringSchedule proxy) {
// 券过期,更改状态及库存退回
proxy.couponOrderExpire(order, false);
// 退款
proxy.couponOrderExpireRefund(order, true);
}


@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void couponOrderExpire(WxCouponOrder co, boolean bStockBack) { public void couponOrderExpire(WxCouponOrder co, boolean bStockBack) {
@@ -112,13 +109,14 @@ public class CouponOrderExpiringSchedule {
} }
} }


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


Date limitDate = DateUtils.getTimeAfterDays(360, co.getCreateDate()); Date limitDate = DateUtils.getTimeAfterDays(360, co.getCreateDate());


+ 3
- 2
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java Просмотреть файл

@@ -148,8 +148,7 @@ public class OrderExpiringSchedule {
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> { wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try { try {
proxy.orderGroupExpired((WxOrder) o,false); proxy.orderGroupExpired((WxOrder) o,false);
//wxOrderService.stockBack(order);
//proxy.returnMoney((WxOrder) o);
proxy.returnMoney((WxOrder) o);
} catch (Exception e) { } catch (Exception e) {
logger.error("拼团过期退款失败" + e.getMessage()); logger.error("拼团过期退款失败" + e.getMessage());
} }
@@ -170,6 +169,7 @@ public class OrderExpiringSchedule {
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode()); order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode());
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> { wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try { try {
proxy.orderGroupExpired((WxOrder) o,true);
proxy.returnMoney((WxOrder) o); proxy.returnMoney((WxOrder) o);
} catch (Exception e) { } catch (Exception e) {
logger.error("参团失败退款失败" + e.getMessage()); logger.error("参团失败退款失败" + e.getMessage());
@@ -181,6 +181,7 @@ public class OrderExpiringSchedule {
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> { wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try { try {
proxy.orderGroupExpired((WxOrder) o,false); proxy.orderGroupExpired((WxOrder) o,false);
proxy.returnMoney((WxOrder) o);
} catch (Exception e) { } catch (Exception e) {
logger.error("参团失败退款失败" + e.getMessage()); logger.error("参团失败退款失败" + e.getMessage());
} }


+ 4
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java Просмотреть файл

@@ -449,10 +449,10 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
logger.error("证书路径为空"); logger.error("证书路径为空");
throw new MallinkException(ErrorCode.CERT_PATH_NOT_FOUND.getCode(), "证书路径为空,请联系商城管理员"); throw new MallinkException(ErrorCode.CERT_PATH_NOT_FOUND.getCode(), "证书路径为空,请联系商城管理员");
} }
if (!Utility.isFileExist(payAccount.getCertPath())) {
logger.error("证书文件不存在");
throw new MallinkException(ErrorCode.CERT_PATH_NOT_FOUND.getCode(), "证书文件不存在,请联系商城管理员");
}
// if (!Utility.isFileExist(payAccount.getCertPath())) {
// logger.error("证书文件不存在");
// throw new MallinkException(ErrorCode.CERT_PATH_NOT_FOUND.getCode(), "证书文件不存在,请联系商城管理员");
// }
// check 是否有退款订单 // check 是否有退款订单
List<WxRefundOrder> refundList = wxRefundOrderMapper.findList(record); List<WxRefundOrder> refundList = wxRefundOrderMapper.findList(record);
if (refundList.size() > 0) { if (refundList.size() > 0) {


Загрузка…
Отмена
Сохранить