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<YdOrderEntity> objectQueryWrapper = new QueryWrapper<>();
|
objectQueryWrapper.eq("state",YdOrderEntity.ORDER_STATE_READY);
|
objectQueryWrapper.eq("type",YdOrderEntity.PRODUCT_ORDER);
|
List<YdOrderEntity> 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<YdOrderEntity> objectQueryWrapper = new QueryWrapper<>();
|
objectQueryWrapper.eq("state",YdOrderEntity.ORDER_STATE_WORK);
|
objectQueryWrapper.eq("type",YdOrderEntity.PRODUCT_ORDER);
|
List<YdOrderEntity> 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);
|
}
|
}
|
}
|
}
|
|
}
|