package com.ruoyi.goods.task;
|
|
import com.ruoyi.common.core.enums.ListingStatusEnum;
|
import com.ruoyi.common.core.enums.StartStatusEnum;
|
import com.ruoyi.common.core.utils.StringUtils;
|
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
|
import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
|
import com.ruoyi.goods.service.IGoodsSeckillService;
|
import com.ruoyi.goods.service.async.AsyncMethodService;
|
import com.ruoyi.system.api.domain.GoodsSeckill;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* @author mitao
|
* @date 2024/5/24
|
*/
|
@Slf4j
|
@Component
|
@RequiredArgsConstructor
|
public class GoodsScheduler {
|
|
private final AsyncMethodService asyncMethodService;
|
private final IGoodsSeckillService goodsSeckillService;
|
private final IGoodsGroupPurchaseService goodsGroupPurchaseService;
|
|
@Scheduled(cron = "0 0 */1 * * ?")
|
private void timingTask() {
|
handleTaskStart();
|
}
|
|
private void handleTaskStart() {
|
log.info(">>>>>>>>>>>>>>>>>>>>定时任务秒杀/团购开始执行<<<<<<<<<<<<<<<<<<<<");
|
LocalDateTime checkTime = LocalDateTime.now().plusHours(1);
|
List<GoodsSeckill> list = goodsSeckillService.lambdaQuery()
|
.eq(GoodsSeckill::getListingStatus, ListingStatusEnum.ON_SHELVES)
|
.eq(GoodsSeckill::getStartStatus, StartStatusEnum.NOT_STARTED)
|
.le(GoodsSeckill::getStartTime, checkTime)
|
.list();
|
if (StringUtils.isNotEmpty(list)) {
|
asyncMethodService.seckillScheduleTask(list);
|
}
|
List<GoodsGroupPurchase> groupPurchaseList = goodsGroupPurchaseService.lambdaQuery()
|
.eq(GoodsGroupPurchase::getListingStatus, ListingStatusEnum.ON_SHELVES)
|
.eq(GoodsGroupPurchase::getStartStatus, StartStatusEnum.NOT_STARTED)
|
.le(GoodsGroupPurchase::getStartTime, checkTime).list();
|
if (StringUtils.isNotEmpty(groupPurchaseList)) {
|
asyncMethodService.groupPurchaseScheduleTask(groupPurchaseList);
|
}
|
}
|
}
|