package cc.mrbird.febs.mall.quartz;
|
|
import cc.mrbird.febs.common.enumerates.YesOrNoOrIngEnum;
|
import cc.mrbird.febs.mall.entity.MallActivity;
|
import cc.mrbird.febs.mall.mapper.MallActivityMapper;
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.List;
|
|
/**
|
* @author wzy
|
* @date 2021-09-28
|
**/
|
@Slf4j
|
@Component
|
@ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true")
|
public class ProfitJob {
|
|
@Autowired
|
private MallActivityMapper mallActivityMapper;
|
|
/**
|
* 一分钟运行一次
|
* 结束活动
|
*/
|
@Scheduled(cron = "0 0/1 * * * ? ")
|
public void stopActivity() {
|
DateTime date = DateUtil.date();
|
List<MallActivity> mallActivities =
|
mallActivityMapper.selectList(
|
new LambdaQueryWrapper<MallActivity>()
|
.eq(MallActivity::getState, YesOrNoOrIngEnum.ING.getValue())
|
.le(MallActivity::getEndTime, date)
|
);
|
if(CollUtil.isEmpty(mallActivities)){
|
return;
|
}
|
|
mallActivities.forEach(mallActivity -> {
|
mallActivity.setState(YesOrNoOrIngEnum.NO.getValue());
|
mallActivityMapper.updateById(mallActivity);
|
});
|
}
|
|
/**
|
* 一分钟运行一次
|
* 开始活动
|
*/
|
@Scheduled(cron = "0 0/1 * * * ? ")
|
public void startActivity() {
|
DateTime date = DateUtil.date();
|
List<MallActivity> mallActivities =
|
mallActivityMapper.selectList(
|
new LambdaQueryWrapper<MallActivity>()
|
.eq(MallActivity::getState, YesOrNoOrIngEnum.YES.getValue())
|
.le(MallActivity::getStartTime, date)
|
.ge(MallActivity::getEndTime, date)
|
);
|
if(CollUtil.isEmpty(mallActivities)){
|
return;
|
}
|
|
mallActivities.forEach(mallActivity -> {
|
mallActivity.setState(YesOrNoOrIngEnum.ING.getValue());
|
mallActivityMapper.updateById(mallActivity);
|
});
|
}
|
|
}
|