Forráskód Böngészése

获取考试状态

yangfeng 1 éve
szülő
commit
78ac4a21a4

+ 3 - 0
web/src/main/java/com/ynfy/buss/exam/exam/controller/ExamController.java

@@ -76,6 +76,9 @@ public class ExamController extends JeecgController<Exam, IExamService> {
         QueryWrapper<Exam> queryWrapper = QueryGenerator.initQueryWrapper(exam, req.getParameterMap());
         Page<Exam> page = new Page<Exam>(pageNo, pageSize);
         IPage<Exam> pageList = examService.page(page, queryWrapper);
+        if (!CollectionUtils.isEmpty(pageList.getRecords())) {
+            pageList.getRecords().forEach(item -> item.setState(examService.getExamState(item)));
+        }
         return Result.OK(pageList);
     }
 

+ 9 - 0
web/src/main/java/com/ynfy/buss/exam/exam/service/IExamService.java

@@ -133,4 +133,13 @@ public interface IExamService extends IService<Exam> {
      * @return
      */
     List<Exam> listLatestExam(Integer limit, String userId);
+
+
+    /**
+     * 获取考试状态
+     *
+     * @param exam
+     * @return
+     */
+    Integer getExamState(Exam exam);
 }

+ 28 - 0
web/src/main/java/com/ynfy/buss/exam/exam/service/impl/ExamServiceImpl.java

@@ -1100,4 +1100,32 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
     public List<Exam> listLatestExam(Integer limit, String userId) {
         return examMapper.listLatestExam(limit, userId);
     }
+
+
+    /**
+     * 获取考试状态
+     *
+     * @param exam
+     * @return
+     */
+    @Override
+    public Integer getExamState(Exam exam) {
+        if (!Objects.isNull(exam.getStartTime())) {
+            if (System.currentTimeMillis() < exam.getStartTime().getTime()) {
+                return ExamState.READY_START;
+            }
+        }
+        if (!Objects.isNull(exam.getEndTime())) {
+            if (System.currentTimeMillis() > exam.getEndTime().getTime()) {
+                return ExamState.OVERDUE;
+            }
+        }
+        if (!Objects.isNull(exam.getStartTime()) && !Objects.isNull(exam.getEndTime())) {
+            if (System.currentTimeMillis() > exam.getStartTime().getTime()
+                    && System.currentTimeMillis() < exam.getEndTime().getTime()) {
+                return ExamState.ENABLE;
+            }
+        }
+        return null;
+    }
 }