UserDeliverOrderTask.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.qs.mp.quartz.task;
  2. import cn.hutool.core.date.LocalDateTimeUtil;
  3. import cn.hutool.core.date.TemporalUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  6. import com.qs.mp.common.enums.DeliverOrderStatusEnum;
  7. import com.qs.mp.common.utils.LogUtil;
  8. import com.qs.mp.user.domain.UserDeliverOrder;
  9. import com.qs.mp.user.service.IUserDeliverOrderService;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Component;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.time.LocalDateTime;
  16. import java.time.temporal.ChronoUnit;
  17. import java.util.ArrayList;
  18. import java.util.Date;
  19. import java.util.List;
  20. /**
  21. * 用户提货订单任务
  22. * @author Cup
  23. * @date 2022/4/20
  24. */
  25. @Component("userDeliverOrderTask")
  26. public class UserDeliverOrderTask {
  27. protected final Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
  28. @Autowired
  29. private IUserDeliverOrderService userDeliverOrderService;
  30. /**
  31. * x天前的待收货订单自动确认收货任务
  32. */
  33. public void confirm(Integer day) {
  34. LogUtil.info(logger, "...用户提货订单自动确认收货任务开始...");
  35. LocalDateTime now = LocalDateTimeUtil.now();
  36. LocalDateTime deliveryTime = LocalDateTimeUtil.offset(now, -day, ChronoUnit.DAYS);
  37. List<UserDeliverOrder> userDeliverOrderList = userDeliverOrderService.list(new LambdaQueryWrapper<UserDeliverOrder>()
  38. .eq(UserDeliverOrder::getStatus, DeliverOrderStatusEnum.NOT_CONFIRM.getValue())
  39. .le(UserDeliverOrder::getDeliveryTime, deliveryTime));
  40. List<UserDeliverOrder> params = new ArrayList<>();
  41. if (CollectionUtils.isNotEmpty(userDeliverOrderList)) {
  42. for (UserDeliverOrder userDeliverOrder : userDeliverOrderList) {
  43. UserDeliverOrder param = new UserDeliverOrder();
  44. param.setOrderId(userDeliverOrder.getOrderId());
  45. param.setConfirmTime(new Date());
  46. param.setStatus(DeliverOrderStatusEnum.FINISHED);
  47. params.add(param);
  48. }
  49. }
  50. userDeliverOrderService.updateBatchById(params);
  51. LogUtil.info(logger, "...用户提货订单自动确认收货任务结束...");
  52. }
  53. }