From 75313c6655672003f8d59a618cc7901a69ed835f Mon Sep 17 00:00:00 2001 From: gongbiao Date: Sat, 16 Mar 2019 11:51:11 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=8B=BC=E5=9B=A2][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E9=80=80=E6=AC=BE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/schedule/OrderExpiringSchedule.java | 9 +++++++-- .../com/iformall/service/WxRefundOrderService.java | 2 ++ .../service/impl/WxOrderGroupServiceImpl.java | 12 ++++++++---- .../service/impl/WxRefundOrderServiceImpl.java | 8 ++++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 4ac9fce6a..3e46bc15a 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -6,11 +6,13 @@ import com.iformall.domain.po.WxOrderGroup; import com.iformall.enums.EnumAppType; import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumOrderType; +import com.iformall.enums.EnumRefundStatus; import com.iformall.mapper.WxAppinfoMapper; import com.iformall.mapper.WxOrderGroupMapper; import com.iformall.mapper.WxOrderMapper; import com.iformall.service.WxOrderGroupService; import com.iformall.service.WxOrderService; +import com.iformall.service.WxRefundOrderService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -46,7 +48,7 @@ public class OrderExpiringSchedule { WxAppinfoMapper wxAppinfoMapper; @Autowired - com.iformall.service.WxRefundOrderService WxRefundOrderService; + WxRefundOrderService wxRefundOrderService; @Scheduled(cron = "0 */5 * * * *?") // 每5分钟检查一次 //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 @@ -147,7 +149,10 @@ public class OrderExpiringSchedule { appinfo.setType(EnumAppType.C.getCode()); appinfo = wxAppinfoMapper.findList(appinfo).get(0); //退款流程 - WxRefundOrderService.returnMoney(appinfo, order.getId()); + boolean has = wxRefundOrderService.hasRefundOrder(order.getId(), EnumRefundStatus.REFUND_SUCCESS.getCode()); + if (!has) { + wxRefundOrderService.returnMoney(appinfo, order.getId()); + } } } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/WxRefundOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxRefundOrderService.java index 118dfc43b..7fccf9ce4 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRefundOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRefundOrderService.java @@ -99,4 +99,6 @@ public interface WxRefundOrderService { ResultData returnMoney(WxAppinfo appInfo, Long orderId); + boolean hasRefundOrder(Long orderId, Integer status); + } 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 424465ae1..c69a79acf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java @@ -11,6 +11,7 @@ import com.iformall.domain.vo.WxOrderGroupMarketing; import com.iformall.enums.EnumAppType; import com.iformall.enums.EnumCouponStatus; import com.iformall.enums.EnumOrderStatus; +import com.iformall.enums.EnumRefundStatus; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.WxOrderGroupService; @@ -57,7 +58,7 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { WxAppinfoMapper wxAppinfoMapper; @Autowired - WxRefundOrderService WxRefundOrderService; + WxRefundOrderService wxRefundOrderService; @Autowired RedisLock redisLock; @@ -317,9 +318,12 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { for (WxOrder temp : list) { if (temp.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_OVERTIME.getCode()) || temp.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode())) { - //去库存 - wxOrderService.stockBack(temp); - WxRefundOrderService.returnMoney(appinfo, temp.getId()); + boolean has = wxRefundOrderService.hasRefundOrder(order.getId(), EnumRefundStatus.REFUND_SUCCESS.getCode()); + if (!has) { + //去库存 + wxOrderService.stockBack(temp); + wxRefundOrderService.returnMoney(appinfo, temp.getId()); + } } } } 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 4aabceb1c..287b9a75f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -1568,4 +1568,12 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { } } + @Override + public boolean hasRefundOrder(Long orderId, Integer status) { + WxRefundOrder order = new WxRefundOrder(); + order.setOrderId(orderId); + order.setRefundOrderStatus(status); + return wxRefundOrderMapper.selectCount(order) > 0 ? true : false; + } + }