package com.xiaopeng.operation.utils.task;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.xiaopeng.api.model.operation.XpActicityStrategy;
|
import com.xiaopeng.api.model.operation.XpActivity;
|
import com.xiaopeng.operation.service.IXpActicityService;
|
import com.xiaopeng.operation.service.IXpActicityStrategyService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.List;
|
|
@Slf4j
|
@Component
|
public class ActivityTask {
|
|
@Resource
|
private IXpActicityStrategyService xpActicityStrategyService;
|
|
@Resource
|
private IXpActicityService xpActicityService;
|
|
|
@Scheduled(cron = "0 0/1 * * * *")
|
public void taskOrder() {
|
xpActicityService.updateStatus();
|
//循环发放的活动
|
pusCoupon();
|
}
|
|
|
/**
|
* 每日发放券的活动
|
*/
|
public void pusCoupon() {
|
List<XpActivity> activities = xpActicityService.list(new QueryWrapper<XpActivity>().eq("status", 2)
|
.eq("is_deleted", 0).last(" and now() between start_time and end_time"));
|
if (activities.isEmpty()) {
|
return;
|
}
|
for (XpActivity activity : activities) {
|
List<XpActicityStrategy> list = xpActicityStrategyService.list(new QueryWrapper<XpActicityStrategy>()
|
.eq("distribution_rules", 1)
|
.eq("is_deleted", 0)
|
.eq("actitcity_id", activity.getId()));
|
for (XpActicityStrategy xpActicityStrategy : list) {
|
String distributionTime = xpActicityStrategy.getDistributionTime();
|
String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm"));
|
if (distributionTime.equals(format)) {
|
xpActicityService.pushCoupon(activity, xpActicityStrategy);
|
}
|
}
|
}
|
}
|
}
|