Joburgess 5 anni fa
parent
commit
7fdd194c17

+ 19 - 13
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -117,26 +117,32 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
 
     @Override
     public void updateExamStatus() {
-        List<ExaminationBasic> needUpdateStatusExams = examinationBasicDao.getNeedUpdateStatusExams();
-        if (CollectionUtils.isEmpty(needUpdateStatusExams)) {
+        List<ExaminationBasic> exams = examinationBasicDao.getNeedUpdateStatusExams();
+        if (CollectionUtils.isEmpty(exams)) {
             return;
         }
         Date now = new Date();
-        for (ExaminationBasic needUpdateStatusExam : needUpdateStatusExams) {
-            if (now.compareTo(needUpdateStatusExam.getEnrollStartTime()) >= 0) {
-                needUpdateStatusExam.setStatus(ExamStatusEnum.APPLYING);
-                examLifecycleLogDao.insert(new ExamLifecycleLog(needUpdateStatusExam.getId().intValue(), "报名已开启", null, "定时任务自动更新"));
+        for (ExaminationBasic exam : exams) {
+            if (!ExamStatusEnum.APPLYING.equals(exam.getStatus())
+                    &&now.compareTo(exam.getEnrollStartTime()) >= 0
+                    && now.compareTo(exam.getEnrollEndTime()) <= 0) {
+                exam.setStatus(ExamStatusEnum.APPLYING);
+                examLifecycleLogDao.insert(new ExamLifecycleLog(exam.getId().intValue(), "报名已开启", null, "定时任务自动更新"));
+                continue;
             }
-            if (now.compareTo(needUpdateStatusExam.getEnrollEndTime()) >= 0) {
-                needUpdateStatusExam.setStatus(ExamStatusEnum.APPLIED);
-                examLifecycleLogDao.insert(new ExamLifecycleLog(needUpdateStatusExam.getId().intValue(), "报名已结束", null,"定时任务自动更新"));
+            if (!ExamStatusEnum.APPLIED.equals(exam.getStatus())
+                    &&now.compareTo(exam.getEnrollEndTime()) >= 0) {
+                exam.setStatus(ExamStatusEnum.APPLIED);
+                examLifecycleLogDao.insert(new ExamLifecycleLog(exam.getId().intValue(), "报名已结束", null,"定时任务自动更新"));
+                continue;
             }
-            if (Objects.nonNull(needUpdateStatusExam.getActualExamEndTime())
-                    &&now.compareTo(needUpdateStatusExam.getActualExamEndTime()) >= 0) {
-                needUpdateStatusExam.setStatus(ExamStatusEnum.EXAM_END);
+            if (Objects.nonNull(exam.getActualExamEndTime())
+                    &&ExamStatusEnum.EXAM_END.equals(exam.getStatus())
+                    &&now.compareTo(exam.getActualExamEndTime()) >= 0) {
+                exam.setStatus(ExamStatusEnum.EXAM_END);
             }
         }
-        examinationBasicDao.batchUpdate(needUpdateStatusExams);
+        examinationBasicDao.batchUpdate(exams);
     }
 
     @Override

+ 1 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExaminationBasicMapper.xml

@@ -245,7 +245,7 @@
 	</select>
 
     <select id="getNeedUpdateStatusExams" resultMap="ExaminationBasic">
-		SELECT * FROM examination_basic WHERE status_ IN ('NOT_START', 'APPLYING', 'APPLIED')
+		SELECT * FROM examination_basic WHERE status_ IN ('NOT_START', 'APPLYING', 'APPLIED', 'EXAM_ING')
 	</select>
 
 	<select id="getExams" resultMap="ExaminationBasicDto">