wangliang 4 tahun lalu
induk
melakukan
c99a4e45b8

+ 9 - 7
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityDto.java

@@ -130,7 +130,7 @@ public class TEExamActivityDto implements Serializable {
 
     }
 
-    public TEExamActivityDto(ExamCacheBean ec, ExamActivityCacheBean examActivityCacheBean, ExamStudentCacheBean examStudentCacheBean, Long examStudentId,ExamCourseCacheBean examCourseCacheBean) {
+    public TEExamActivityDto(ExamCacheBean ec, ExamActivityCacheBean examActivityCacheBean, ExamStudentCacheBean examStudentCacheBean, Long examStudentId, ExamCourseCacheBean examCourseCacheBean) {
         this.id = examActivityCacheBean.getId();
         this.code = examActivityCacheBean.getCode();
         this.examStudentId = examStudentId;
@@ -141,15 +141,17 @@ public class TEExamActivityDto implements Serializable {
         } else if (Objects.nonNull(ec.getPrepareSeconds())) {
             this.prepareTime = examActivityCacheBean.getStartTime().getTime() - (ec.getPrepareSeconds() * 1000);
         }
-        if (Objects.nonNull(ec.getMinDurationSeconds())) {
-            this.minStartTime = examActivityCacheBean.getStartTime().getTime() + (ec.getMinDurationSeconds() * 1000);
+        if (Objects.nonNull(examActivityCacheBean.getStartTime())) {
+            this.minStartTime = examActivityCacheBean.getStartTime().getTime();
+        } else {
+            this.minStartTime = ec.getStartTime().getTime();
         }
-        if (Objects.nonNull(examActivityCacheBean.getMaxDurationSeconds())) {
-            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (examActivityCacheBean.getMaxDurationSeconds() * 1000);
+        if (Objects.nonNull(examActivityCacheBean.getOpeningSeconds())) {
+            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (examActivityCacheBean.getOpeningSeconds() * 1000);
         } else if (Objects.nonNull(ec.getMaxDurationSeconds())) {
-            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (ec.getMaxDurationSeconds() * 1000);
+            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (ec.getOpeningSeconds() * 1000);
         }
-        if (Objects.nonNull(examActivityCacheBean.getFinishTime())) {
+        if (Objects.nonNull(examActivityCacheBean.getFinishTime()) && ec.getForceFinish() == 1) {
             this.maxFinishTime = examActivityCacheBean.getFinishTime().getTime();
         } else if (Objects.nonNull(ec.getEndTime())) {
             this.maxFinishTime = ec.getEndTime().getTime();

+ 1 - 1
themis-exam/src/main/java/com/qmth/themis/exam/api/TEStudentController.java

@@ -304,7 +304,7 @@ public class TEStudentController {
         TEExamActivityDto teExamActivityDto = new TEExamActivityDto(ec, examActivityCacheBean, examStudentCacheBean, examStudentId, examCourseCacheBean);
         Gson gson = new Gson();
         ExamActivityUnFinishBean examActivityUnFinishBean = gson.fromJson(gson.toJson(teExamActivityDto), ExamActivityUnFinishBean.class);
-        if (Objects.equals(ec.getMode(), ExamModeEnum.ANYTIME)) {
+        if (Objects.equals(ec.getMode(), ExamModeEnum.ANYTIME) || (Objects.equals(ec.getMode(), ExamModeEnum.TOGETHER) && ec.getForceFinish() == 0)) {
             examActivityUnFinishBean.setMaxFinishTime(null);
         }
         examActivityUnFinishBean.setRecordId(recordId);