From 19f0aec810fc750e730c75e699f2f86153d58cc1 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Sat, 20 Jun 2020 20:06:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=80=80=E6=AC=BEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/CouponOrderExpiringSchedule.java | 40 +++++++++---------- .../schedule/OrderExpiringSchedule.java | 5 ++- .../impl/WxRefundOrderServiceImpl.java | 8 ++-- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index b412d4e75..1631a01ab 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -13,6 +13,7 @@ import com.iformall.service.WxRefundOrderService; import com.iformall.utils.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.aop.framework.AopContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -51,11 +52,13 @@ public class CouponOrderExpiringSchedule { // @Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 public void couponOrderExpiringSchedule() { + CouponOrderExpiringSchedule proxy = (CouponOrderExpiringSchedule) AopContext.currentProxy(); + List list = wxCouponOrderMapper.findExpiredFreeCouponOrderByValidDate(); list.stream().forEach(co -> { // 券过期,更改状态及库存退回 try { - couponOrderExpire(co, true); + proxy.couponOrderExpire(co, true); } catch (Exception e) { 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秒中一次 public void couponOrderRefundSchedule() { - List list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate(); - + CouponOrderExpiringSchedule proxy = (CouponOrderExpiringSchedule) AopContext.currentProxy(); 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}) 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()) && !co.getAutoRefund().equals(EnumCouponAutoRefund.UNSUPPORTED.getCode())) { WxAppinfo appinfo = new WxAppinfo(); appinfo.updateTenantInfo(co); - appinfo.setType(EnumAppType.B.getCode()); + //appinfo.setType(EnumAppType.B.getCode()); + appinfo.setType(EnumAppType.C.getCode()); appinfo = wxAppinfoMapper.findList(appinfo).get(0); Date limitDate = DateUtils.getTimeAfterDays(360, co.getCreateDate()); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 125df3c65..06ff41d8f 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -148,8 +148,7 @@ public class OrderExpiringSchedule { wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> { try { proxy.orderGroupExpired((WxOrder) o,false); - //wxOrderService.stockBack(order); - //proxy.returnMoney((WxOrder) o); + proxy.returnMoney((WxOrder) o); } catch (Exception e) { logger.error("拼团过期退款失败" + e.getMessage()); } @@ -170,6 +169,7 @@ public class OrderExpiringSchedule { order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode()); wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> { try { + proxy.orderGroupExpired((WxOrder) o,true); proxy.returnMoney((WxOrder) o); } catch (Exception e) { logger.error("参团失败退款失败" + e.getMessage()); @@ -181,6 +181,7 @@ public class OrderExpiringSchedule { wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> { try { proxy.orderGroupExpired((WxOrder) o,false); + proxy.returnMoney((WxOrder) o); } catch (Exception e) { logger.error("参团失败退款失败" + e.getMessage()); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java index 6f11acde7..bf96da992 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -449,10 +449,10 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { 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(), "证书文件不存在,请联系商城管理员"); - } +// if (!Utility.isFileExist(payAccount.getCertPath())) { +// logger.error("证书文件不存在"); +// throw new MallinkException(ErrorCode.CERT_PATH_NOT_FOUND.getCode(), "证书文件不存在,请联系商城管理员"); +// } // check 是否有退款订单 List refundList = wxRefundOrderMapper.findList(record); if (refundList.size() > 0) {