浏览代码

冻结时间校验

xiatian 1 年之前
父节点
当前提交
9f8b0729ce

+ 7 - 0
examcloud-core-oe-student-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/student/api/controller/ExamControlController.java

@@ -193,6 +193,13 @@ public class ExamControlController extends ControllerSupport {
         examControlService.manualEndExamWithCrypto(encryptParams, user, getIp(request),
                 request.getHeader(CryptoConstant.TIMESTAMP), fromBy);
     }
+    
+    @ApiOperation(value = "校验交卷冻结时间")
+    @PostMapping(value = "check/time")
+    public void checkTime() {
+        User user = getAccessUser();
+        examControlService.checkAndComputeExamDuration(user.getUserId(), false);
+    }
 
     /**
      * 获取考试记录信息

+ 8 - 0
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/ExamControlService.java

@@ -117,4 +117,12 @@ public interface ExamControlService {
      */
     SwitchScreenCountInfo switchScreen(Long examRecordDataId);
 
+	/**
+	 * 计算考试时长 校验是否达到冻结时间
+	 *
+	 * @param studentId 学生id
+	 * @return
+	 */
+	Long checkAndComputeExamDuration(Long studentId, Boolean forceEndExam);
+
 }

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

@@ -2055,7 +2055,8 @@ public class ExamControlServiceImpl implements ExamControlService {
      * @param studentId 学生id
      * @return
      */
-    private Long checkAndComputeExamDuration(Long studentId, Boolean forceEndExam) {
+    @Override
+    public Long checkAndComputeExamDuration(Long studentId, Boolean forceEndExam) {
         // 获取考试会话,判断考生是否已结束考试(二次校验)
         ExamingSession examingSession = examingSessionService.getExamingSession(studentId);
         if (examingSession == null || ExamingStatus.INFORMAL.equals(examingSession.getExamingStatus())) {