package com.xcong.excoin.quartz.job; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xcong.excoin.modules.blackchain.service.DateUtil; 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 = "loop-job", havingValue = "true") public class YdPowerJob { @Resource private YdOrderDao ydOrderDao; /** * 产品生效 */ @Scheduled(cron = "0 0/1 * * * ?") public void orderWork() { QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("",YdOrderEntity.ORDER_STATE_READY); List ydOrderEntities = ydOrderDao.selectList(objectQueryWrapper); Date date = new Date(); if(CollUtil.isNotEmpty(ydOrderEntities)){ for(YdOrderEntity ydOrderEntity : ydOrderEntities){ Date workTime = ydOrderEntity.getWorkTime(); if(DateUtil.compare_date(date.toString(),workTime.toString()) == 1 && ObjectUtil.isNotEmpty(workTime)){ 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("",YdOrderEntity.ORDER_STATE_WORK); List ydOrderEntities = ydOrderDao.selectList(objectQueryWrapper); Date date = new Date(); if(CollUtil.isNotEmpty(ydOrderEntities)){ for(YdOrderEntity ydOrderEntity : ydOrderEntities){ Date endTime = ydOrderEntity.getEndTime(); if(DateUtil.compare_date(date.toString(),endTime.toString()) == 1 && ObjectUtil.isNotEmpty(endTime)) { Long id = ydOrderEntity.getId(); ydOrderDao.UpdateByIdAndState(id,YdOrderEntity.ORDER_STATE_END); } } } } }