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