Преглед на файлове

断点续考交卷如果被锁,则延迟交卷

lideyin преди 5 години
родител
ревизия
19184a364b

+ 8 - 4
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/impl/ExamControlServiceImpl.java

@@ -430,15 +430,19 @@ public class ExamControlServiceImpl implements ExamControlService {
     private ExamBean checkExam(ExamStudentEntity examStudentEntity) {
 
 //                examStudentEntity.getOrgId());
-        ExamBean examBean = ExamCacheTransferHelper.getCachedExam(examStudentEntity.getExamId(),
+
+        //通用考试配置
+        ExamBean examBean = ExamCacheTransferHelper.getCachedExam(examStudentEntity.getExamId());
+        //学习中心特殊考试配置(是否禁考,开考时间可以特殊设置)
+        ExamBean specialExamBean = ExamCacheTransferHelper.getCachedExam(examStudentEntity.getExamId(),
                 examStudentEntity.getOrgId());
-        if (!examBean.getEnable() || (examBean.getExamLimit() != null && examBean.getExamLimit())) {
+        if (!examBean.getEnable() || (specialExamBean.getExamLimit() != null && specialExamBean.getExamLimit())) {
             throw new StatusException("ExamControlServiceImpl-checkExam-exception-01", "暂无考试资格,请与学校老师联系");
         }
-        if (new Date().before(examBean.getBeginTime())) {
+        if (new Date().before(specialExamBean.getBeginTime())) {
             throw new StatusException("ExamControlServiceImpl-checkExam-exception-02", "考试未开始");
         }
-        if (examBean.getEndTime().before(new Date())) {
+        if (specialExamBean.getEndTime().before(new Date())) {
             throw new StatusException("ExamControlServiceImpl-checkExam-exception-03", "本次考试已结束");
         }
         if (ExamType.ONLINE.name().equals(examBean.getExamType())

+ 3 - 3
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/impl/ExamStudentServiceImpl.java

@@ -150,7 +150,7 @@ public class ExamStudentServiceImpl implements ExamStudentService {
             return 1;
         }
         //考试批次中设置的考试次数
-        int examTimes = examBean.getExamTimes().intValue();
+        int canExamTimes = examBean.getExamTimes().intValue();
         //正常考试的次数
         int normalExamTimes = examStudentInfo.getNormalExamTimes();
         /**
@@ -158,10 +158,10 @@ public class ExamStudentServiceImpl implements ExamStudentService {
          * 且正常考试的次数大于等于设定的次数
          * 将考试剩余次数设置为1
          */
-        if (reexamineNotCompleted(examStudentInfo) && normalExamTimes >= examTimes) {
+        if (reexamineNotCompleted(examStudentInfo) && normalExamTimes >= canExamTimes) {
             return 1;
         }
-        int allowExamCount = examTimes - normalExamTimes;
+        int allowExamCount = canExamTimes - normalExamTimes;
         return allowExamCount < 0 ? 0 : allowExamCount;
     }