Эх сурвалжийг харах

订单相关定时任务配置

yubin 1 долоо хоног өмнө
parent
commit
2b252cbe50

+ 20 - 0
mall-api/src/main/java/com/txz/mall/service/OrderDubboService.java

@@ -0,0 +1,20 @@
+package com.txz.mall.service;
+
+public interface OrderDubboService {
+
+    /**
+     * 开团时间到时关闭定时任务
+     */
+    void scheduledTaskStorePinkSummaryClose();
+
+    /**
+     * 自动签收定时任务
+     */
+    void  scheduledTaskBatchSigning();
+
+    /**
+     * 订单超时未支付自动取消  20分钟  10秒扫描一次  每次处理100条
+     */
+    void orderTimeoutAutomaticCancel();
+
+}

+ 45 - 0
mall-service/src/main/java/com/txz/mall/dubbo/impl/OrderDubboServiceImpl.java

@@ -0,0 +1,45 @@
+package com.txz.mall.dubbo.impl;
+
+import com.txz.mall.service.OrderDubboService;
+import com.txz.mall.service.StoreOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboService;
+
+import javax.annotation.Resource;
+@Slf4j
+@DubboService(timeout = 1200000)
+public class OrderDubboServiceImpl implements OrderDubboService {
+
+    @Resource
+    private StoreOrderService storeOrderService;
+
+    /**
+     * 拼团超时关闭定时任务
+     */
+    @Override
+    public void scheduledTaskStorePinkSummaryClose() {
+        log.info("Mall:scheduledTaskStorePinkSummaryClose start");
+        storeOrderService.scheduledTaskStorePinkSummaryClose();
+        log.info("Mall:scheduledTaskStorePinkSummaryClose end");
+    }
+
+    /**
+     * 自动签收定时任务
+     */
+    @Override
+    public void scheduledTaskBatchSigning() {
+        log.info("Mall:scheduledTaskBatchSigning start");
+        storeOrderService.batchSigning();
+        log.info("Mall:scheduledTaskBatchSigning end");
+    }
+
+    /**
+     * 订单支付超时自动取消订单
+     */
+    @Override
+    public void orderTimeoutAutomaticCancel() {
+        log.info("Mall:orderTimeoutAutomaticCancel start");
+        storeOrderService.orderTimeoutAutomaticCancel();
+        log.info("Mall:orderTimeoutAutomaticCancel end");
+    }
+}

+ 3 - 0
mall-service/src/main/java/com/txz/mall/service/StoreOrderService.java

@@ -142,6 +142,9 @@ public interface StoreOrderService extends Service<StoreOrder> {
      */
     void cancel(Long id);
 
+
+    void orderTimeoutAutomaticCancel();
+
     /**
      * 导出发货单
      */

+ 29 - 1
mall-service/src/main/java/com/txz/mall/service/impl/StoreOrderServiceImpl.java

@@ -1988,7 +1988,35 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
     //     storeOrderDTO.setStatus(PinkOrderStatusEnum.GROUP_ORDER_TO_SHIP.getKey());
     //     exportFile(storeOrderDTO, response);
     // }
-    
+
+
+    @Override
+    public void orderTimeoutAutomaticCancel() {
+        Date now = DateUtil.date();
+
+        PageHelper.startPage(1, 100);
+
+        Condition condition = new Condition(StoreOrder.class);
+        Example.Criteria criteria = condition.createCriteria();
+        Date settleTime = DateUtil.offsetMinute(now,-20);
+        criteria.andLessThanOrEqualTo("createTime",settleTime);
+        criteria.andEqualTo("isDelete", 0);
+        criteria.andEqualTo("status",PinkOrderStatusEnum.GROUP_ORDER_TO_PAY.getKey());
+        List<StoreOrder> byCondition = findByCondition(condition);
+        if(!org.springframework.util.CollectionUtils.isEmpty(byCondition)){
+            try {
+                for (StoreOrder storeOrder : byCondition) {
+                    cancel(storeOrder.getId());
+                }
+            }catch (Exception e){
+                log.error("orderTimeoutAutomaticCancel处理失败",e);
+            }
+
+        }
+
+
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void importDelivery(MultipartFile file, HttpServletResponse response) {