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 mallActivities = mallActivityMapper.selectList( new LambdaQueryWrapper() .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 mallActivities = mallActivityMapper.selectList( new LambdaQueryWrapper() .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); }); } }