| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package com.dataeasy.server.task;
- import java.util.List;
- import java.util.Set;
- import java.util.stream.Collectors;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import org.springframework.util.CollectionUtils;
- import com.dataeasy.server.atomic.entity.SubscriptionOrder;
- import com.dataeasy.server.atomic.service.ISubscriptionOrderService;
- import com.dataeasy.server.common.annotation.ScheduleTask;
- import com.dataeasy.server.constant.PaymentStatusEnum;
- import com.dataeasy.server.constant.ScheduleTaskEnum;
- import lombok.extern.slf4j.Slf4j;
- /**
- * @author tyuio
- * @version 1.0.0
- * @date 2025/3/14 10:51
- * @description 支付订单自动关闭 定时任务,每15分钟执行一次
- */
- @Slf4j
- @Component
- @ScheduleTask(ScheduleTaskEnum.AUTO_CLOSE_PAY_ORDER)
- public class AutoCLosePayOrderTask {
- @Autowired
- private ISubscriptionOrderService subscriptionOrderService;
- @Scheduled(cron = "0 0,15,30,45 * * * *")
- public void execute() {
- List<SubscriptionOrder> pendingCLoseOrders = subscriptionOrderService.getPendingCLoseOrders();
- if (CollectionUtils.isEmpty(pendingCLoseOrders)) {
- log.info("没有需要关闭得支付订单");
- return;
- }
- Set<Long> ids = pendingCLoseOrders.stream().map(SubscriptionOrder::getId).collect(Collectors.toSet());
- SubscriptionOrder updateSubscriptionOrder = new SubscriptionOrder();
- updateSubscriptionOrder.setPaymentStatus(PaymentStatusEnum.CLOSED);
- subscriptionOrderService.batchUpdate(ids, updateSubscriptionOrder);
- }
- }
|