package com.xcong.excoin.quartz.job; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xcong.excoin.modules.yunding.dao.YdOrderDao; import com.xcong.excoin.modules.yunding.entity.YdOrderEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Date; import java.util.List; @Slf4j @Component @ConditionalOnProperty(prefix = "app", name = "xch-job", havingValue = "true") public class YdPowerJob { @Resource private YdOrderDao ydOrderDao; /** * 产品生效 */ @Scheduled(cron = "0 0/1 * * * ?") public void orderWork() { log.info("产品生效任务"); QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("state",YdOrderEntity.ORDER_STATE_READY); objectQueryWrapper.eq("type",YdOrderEntity.PRODUCT_ORDER); List ydOrderEntities = ydOrderDao.selectList(objectQueryWrapper); Date date = new Date(); if(CollUtil.isNotEmpty(ydOrderEntities)){ for(YdOrderEntity ydOrderEntity : ydOrderEntities){ Date workTime = ydOrderEntity.getWorkTime(); if(ObjectUtil.isNotEmpty(workTime) && DateUtil.compare(date, workTime) > -1){ Long id = ydOrderEntity.getId(); ydOrderDao.UpdateByIdAndState(id,YdOrderEntity.ORDER_STATE_WORK); } } } } /** * 产品终止 */ @Scheduled(cron = "0 0/1 * * * ?") public void orderEnd() { QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("state",YdOrderEntity.ORDER_STATE_WORK); objectQueryWrapper.eq("type",YdOrderEntity.PRODUCT_ORDER); List ydOrderEntities = ydOrderDao.selectList(objectQueryWrapper); Date date = new Date(); if(CollUtil.isNotEmpty(ydOrderEntities)){ for(YdOrderEntity ydOrderEntity : ydOrderEntities){ Date endTime = ydOrderEntity.getEndTime(); if(ObjectUtil.isNotEmpty(endTime) && DateUtil.compare(date, endTime) > -1) { Long id = ydOrderEntity.getId(); ydOrderDao.UpdateByIdAndState(id,YdOrderEntity.ORDER_STATE_END); } } } } }