From 689c5e73b532b4981a6f31a124a1fb7d1c87b607 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Sat, 10 Oct 2020 16:04:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=BC=E5=9B=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/OrderExpiringSchedule.java | 20 +++++++++++++++++++ .../com/iformall/enums/EnumOrderStatus.java | 4 +++- .../service/impl/WxOrderGroupServiceImpl.java | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 47f06f57c..6e643fa65 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -192,8 +192,28 @@ public class OrderExpiringSchedule { } }); + //此处是拼团完成后,会将其他失效的订单置成该状态。需要查询是否已经付款,如果已经付款,则退款,退款回回滚库存。如果没付款,则主动回滚库存 + order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode()); + wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> { + try { + proxy.expiredCheckAndReturnMoney((WxOrder) o,payWay); + } catch (Exception e) { + logger.error("参团失败退款失败" + e.getMessage()); + } + }); + } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public void expiredCheckAndReturnMoney(WxOrder wxOrder,EnumPayWay payWay) throws MallinkException, Exception { + if (wxPaySuccess(wxOrder, false, payWay)) { + orderGroupExpired(wxOrder,false,false,payWay); + returnMoney(wxOrder,payWay); + }else { + orderGroupExpired(wxOrder,false,true,payWay); + } + } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public void expiredAndReturnMoney(WxOrder wxOrder,boolean checkRealPay,EnumPayWay payWay) throws MallinkException, Exception { orderGroupExpired(wxOrder,checkRealPay,false,payWay); diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java index d3dce2f12..adf2d1e7c 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java @@ -24,7 +24,9 @@ public enum EnumOrderStatus { ORDER_STATUS_COOPERATING_FAILD(14, "参团失败"), ORDER_STATUS_COOPERATING_UNPAID(15, "拼团待付款"),//占库存 ORDER_STATUS_COOPERATING_BREAK(16, "拼团取消"), - ORDER_STATUS_COOPERATING_SCHEDU_REFUND(99,"订单定时状态-需要返款和回滚库存,无需再次查询真实支付状态") + ORDER_STATUS_COOPERATING_SCHEDU_REFUND(99,"订单定时状态-需要返款和回滚库存,无需再次查询真实支付状态"), + ORDER_STATUS_COOPERATING_COMPLETE_REFUND(98,"拼团完成会,未有效的订单统一置成该状态") + ; public static EnumOrderStatus getEnum(Integer code) { for (EnumOrderStatus value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java index 2bd01210e..4a0742f37 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java @@ -244,7 +244,7 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { //temp.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_BREAK.getCode()); //拼团取消。定时会处理退款 - temp.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode()); + temp.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode()); wxOrderMapper.updateById(temp); } }