Explorar el Código

用户自动确认收货任务

cup hace 3 años
padre
commit
4b916393a3

+ 7 - 0
mp-quartz/pom.xml

@@ -17,6 +17,13 @@
 
     <dependencies>
 
+        <!-- hutool 工具包-->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.8.0.M3</version>
+        </dependency>
+
         <!-- 定时任务 -->
         <dependency>
             <groupId>org.quartz-scheduler</groupId>

+ 66 - 0
mp-quartz/src/main/java/com/qs/mp/quartz/task/UserDeliverOrderTask.java

@@ -0,0 +1,66 @@
+package com.qs.mp.quartz.task;
+
+import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.date.TemporalUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.qs.mp.common.enums.DeliverOrderStatusEnum;
+import com.qs.mp.common.utils.LogUtil;
+import com.qs.mp.user.domain.UserDeliverOrder;
+import com.qs.mp.user.service.IUserDeliverOrderService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 用户提货订单任务
+ * @author Cup
+ * @date 2022/4/20
+ */
+@Component("userDeliverOrderTask")
+public class UserDeliverOrderTask {
+
+
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
+
+    @Autowired
+    private IUserDeliverOrderService userDeliverOrderService;
+
+
+    /**
+     * x天前的待收货订单自动确认收货任务
+     */
+    public void confirm(int day) {
+        LogUtil.info(logger, "...用户提货订单自动确认收货任务开始...");
+        LocalDateTime now = LocalDateTimeUtil.now();
+        LocalDateTime createdTime = LocalDateTimeUtil.offset(now, -day, ChronoUnit.DAYS);
+
+        List<UserDeliverOrder> userDeliverOrderList = userDeliverOrderService.list(new LambdaQueryWrapper<UserDeliverOrder>()
+                .eq(UserDeliverOrder::getStatus, DeliverOrderStatusEnum.NOT_CONFIRM.getValue())
+                .le(UserDeliverOrder::getUpdatedTime, createdTime));
+
+        List<UserDeliverOrder> params = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(userDeliverOrderList)) {
+            for (UserDeliverOrder userDeliverOrder : userDeliverOrderList) {
+                UserDeliverOrder param = new UserDeliverOrder();
+                param.setOrderId(userDeliverOrder.getOrderId());
+                param.setConfirmTime(new Date());
+                param.setStatus(DeliverOrderStatusEnum.FINISHED);
+                params.add(param);
+            }
+        }
+        userDeliverOrderService.updateBatchById(params);
+
+        LogUtil.info(logger, "...用户提货订单自动确认收货任务结束...");
+    }
+
+
+}