package com.yt.common.util;
import com.yt.exam.biz.ExamPlanBiz;
import com.yt.exam.biz.ExamRecordBiz;
import com.yt.exam.ctrl.vo.ExamRecordVo;
import com.yt.exam.entity.ExamPlan;
import com.yt.exam.entity.ExamRecord;
import com.yt.exam.enums.ExamStatusEnum;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Scheduled;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
@Configuration //1.主要用于标记配置类,兼备Component的效果。
public class SaticScheduleTask implements ApplicationContextAware {
@Autowired
@SuppressWarnings("all")
private ExamPlanBiz examPlanBiz;
@Autowired
@SuppressWarnings("all")
private ExamRecordBiz examRecordBiz;
//3.添加定时任务每分钟执行
@Scheduled(cron = "0 */1 * * * ?")
private void configureTasks() {
//从数据库获取
List<ExamPlan> examPlans = examPlanBiz.loadAll();
long epochSecond = LocalDateTime.now().atZone(ZoneId.of("Asia/Shanghai")).toInstant().getEpochSecond()*1000;
for (int i = 0; i <examPlans.size() ; i++) {
ExamPlan examPlan = examPlans.get(i);
if(epochSecond >= examPlan.getEndTime().getTime()){
List<ExamRecordVo> examRecordVos=examRecordBiz.getExamRecordList(examPlan.getId());
for (int j = 0; j <examRecordVos.size() ; j++) {
//修改用户考试状态
ExamRecordVo recordVo = examRecordVos.get(j);
if(recordVo.getStatus()== ExamStatusEnum.WAIT.getCode()){//待考
ExamRecord examRecord =new ExamRecord();
examRecord.setId(recordVo.getRecordId());
examRecord.setStatus(ExamStatusEnum.ABSENT.getCode());//缺考
examRecordBiz.update(examRecord);
}
}
}
}
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
}
}
相关文章
暂无评论...