From c8df15c5d52874b0cb1b53e27091ce1cc4cd6634 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 25 Sep 2021 10:51:32 +0800
Subject: [PATCH] add overtime job
---
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 2 ++
src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java | 45 +++++++++++++++++++++++++++++++++++++++++++++
src/main/java/cc/mrbird/febs/FebsShiroApplication.java | 2 ++
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 3 +++
4 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/FebsShiroApplication.java b/src/main/java/cc/mrbird/febs/FebsShiroApplication.java
index 1766c6b..3f01173 100644
--- a/src/main/java/cc/mrbird/febs/FebsShiroApplication.java
+++ b/src/main/java/cc/mrbird/febs/FebsShiroApplication.java
@@ -5,12 +5,14 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* @author MrBird
*/
@EnableAsync
+@EnableScheduling
@SpringBootApplication
@EnableTransactionManagement
@MapperScan("cc.mrbird.febs.*.mapper")
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index df72510..e7f2769 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -36,4 +36,6 @@
AdminOrderDetailVo getMallOrderDetailById(@Param("id")long id);
List<MallOrderItem> getMallOrderItemByOrderId(@Param("id")long id);
+
+ List<MallOrderInfo> selectOrderInfoByStatus(@Param("status") Integer status);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
new file mode 100644
index 0000000..c9ca6a6
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
@@ -0,0 +1,45 @@
+package cc.mrbird.febs.mall.quartz;
+
+import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
+import cc.mrbird.febs.mall.entity.MallOrderInfo;
+import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-09-25
+ **/
+@Slf4j
+@Component
+public class OrderOvertimeJob {
+
+ @Autowired
+ private MallOrderInfoMapper orderInfoMapper;
+
+ @Scheduled(cron = "0 0/5 * * * ? ")
+ public void overtimeJob() {
+ log.info("订单超时任务执行");
+ List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoByStatus(OrderStatusEnum.WAIT_PAY.getValue());
+ if (CollUtil.isNotEmpty(orderList)) {
+ for (MallOrderInfo orderInfo : orderList) {
+ long subTime = DateUtil.between(orderInfo.getOrderTime(), new Date(), DateUnit.MINUTE, false);
+
+ if (subTime > 15) {
+ orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
+ orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY);
+ orderInfoMapper.updateById(orderInfo);
+ }
+ }
+ }
+
+ }
+}
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 6128a0c..82931b5 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -139,4 +139,7 @@
select * from mall_order_item where order_id = #{id}
</select>
+ <select id="selectOrderInfoByStatus" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+ select * from mall_order_info where status=#{status}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1