1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package com.ylx.massage.task;
- import cn.hutool.core.collection.CollectionUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ylx.common.constant.MassageConstants;
- import com.ylx.massage.domain.TOrder;
- import com.ylx.massage.enums.OrderStatusEnum;
- import com.ylx.massage.service.TOrderService;
- import com.ylx.massage.utils.DateTimeUtils;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Component;
- import javax.annotation.Resource;
- import java.util.Date;
- /**
- * @author jianlong
- * @date 2024-04-19 14:11
- *
- */
- @Slf4j
- @Component("massageTask")
- public class massageTask {
- @Resource
- private TOrderService orderService;
- public void cancelOrder() {
- Date nowDate = new Date();
- log.info("开始执行取消订单任务当前时间,{}", nowDate);
- Date date = DateTimeUtils.addMinute(nowDate, -5);
- log.info("开始执行取消订单任务当前时间减5分钟,{}", date);
- long total = 1L;
- while(total > 0L){
- total = extracted(date);
- }
- }
- private Long extracted(Date nowDate) {
- log.info("extracted 开始执行取消订单任务时间,{}", nowDate);
- LambdaQueryWrapper<TOrder> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
- objectLambdaQueryWrapper.eq(TOrder::getnStatus, OrderStatusEnum.WAIT_PAY.getCode()).
- le(TOrder::getDtCreateTime, nowDate).
- orderByAsc(TOrder::getcTime);
- Page<TOrder> page = new Page<>();
- page.setSize(MassageConstants.TWO_HUNDRED);
- Page<TOrder> resPage = orderService.page(page, objectLambdaQueryWrapper);
- if (CollectionUtil.isNotEmpty(resPage.getRecords())) {
- resPage.getRecords().forEach(order->{
- TOrder newOrder = new TOrder();
- //todo 订单锁
- newOrder.setcId(order.getcId());
- newOrder.setnStatus(OrderStatusEnum.CANCEL.getCode());
- orderService.updateById(newOrder);
- log.info("取消超时未支付订单orderNo,{}", order.getOrderNo());
- });
- }
- return resPage.getTotal();
- }
- }
|