Jelajahi Sumber

merge checkExamInProgress api

deason 3 tahun lalu
induk
melakukan
64d2e2de89

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

@@ -100,24 +100,7 @@ public class ExamControlController extends ControllerSupport {
     @GetMapping("/checkExamInProgress")
     public ExamProcessResultInfo checkExamInProgress(HttpServletRequest request) {
         User user = getAccessUser();
-        String sequenceLockKey = Constants.EXAM_CONTROL_LOCK_PREFIX + user.getUserId();
-        // 系统在请求结束后会,自动释放锁,无需手动解锁
-        SequenceLockHelper.getLock(sequenceLockKey);
-        ExamProcessResultInfo res = new ExamProcessResultInfo();
-        try {
-            CheckExamInProgressInfo info = examControlService.checkExamInProgress(user.getUserId(), getIp(request));
-            res.setCode(Constants.COMMON_SUCCESS_CODE);
-            res.setData(info);
-            return res;
-        } catch (StatusException e) {
-            if (e.getCode().equals(Constants.EXAM_RECORD_NOT_END_STATUS_CODE)) {
-                res.setCode(Constants.PROCESSING_EXAM_RECORD_CODE);
-                return res;
-            }
-            throw e;
-        } catch (Exception e) {
-            throw e;
-        }
+        return examControlService.checkExamInProgress2(user.getUserId(), getIp(request));
     }
 
     /**

+ 1 - 18
examcloud-core-oe-student-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/student/api/controller/client/ExamProcessController.java

@@ -68,24 +68,7 @@ public class ExamProcessController extends ControllerSupport {
     @PostMapping("/checkExamInProgress")
     public ExamProcessResultInfo checkExamInProgress() {
         User user = getAccessUser();
-        String sequenceLockKey = Constants.EXAM_CONTROL_LOCK_PREFIX + user.getUserId();
-        // 系统在请求结束后会,自动释放锁,无需手动解锁
-        SequenceLockHelper.getLock(sequenceLockKey);
-        ExamProcessResultInfo res = new ExamProcessResultInfo();
-        try {
-            CheckExamInProgressInfo info = examControlService.checkExamInProgress(user.getUserId(), getIp(getRequest()));
-            res.setCode(Constants.COMMON_SUCCESS_CODE);
-            res.setData(info);
-            return res;
-        } catch (StatusException e) {
-            if (e.getCode().equals(Constants.EXAM_RECORD_NOT_END_STATUS_CODE)) {
-                res.setCode(Constants.PROCESSING_EXAM_RECORD_CODE);
-                return res;
-            }
-            throw e;
-        } catch (Exception e) {
-            throw e;
-        }
+        return examControlService.checkExamInProgress2(user.getUserId(), getIp(getRequest()));
     }
 
     @ApiOperation(value = "考试心跳")

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

@@ -46,6 +46,8 @@ public interface ExamControlService {
      */
     CheckExamInProgressInfo checkExamInProgress(Long studentId, String ip);
 
+    ExamProcessResultInfo checkExamInProgress2(Long studentId, String ip);
+
     /**
      * 考试心跳
      *

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

@@ -1535,6 +1535,29 @@ public class ExamControlServiceImpl implements ExamControlService {
         log.debug("11.5 保存考试会话结束 ");
     }
 
+    @Override
+    public ExamProcessResultInfo checkExamInProgress2(Long studentId, String ip) {
+        String sequenceLockKey = Constants.EXAM_CONTROL_LOCK_PREFIX + studentId;
+        // 系统在请求结束后会,自动释放锁,无需手动解锁
+        SequenceLockHelper.getLock(sequenceLockKey);
+
+        ExamProcessResultInfo res = new ExamProcessResultInfo();
+        try {
+            CheckExamInProgressInfo info = this.checkExamInProgress(studentId, ip);
+            res.setCode(Constants.COMMON_SUCCESS_CODE);
+            res.setData(info);
+            return res;
+        } catch (StatusException e) {
+            if (e.getCode().equals(Constants.EXAM_RECORD_NOT_END_STATUS_CODE)) {
+                res.setCode(Constants.PROCESSING_EXAM_RECORD_CODE);
+                return res;
+            }
+            throw e;
+        } catch (Exception e) {
+            throw e;
+        }
+    }
+
     @Override
     public CheckExamInProgressInfo checkExamInProgress(Long studentId, String ip) {
         ExamingSession examSessionInfo = examingSessionService.getExamingSession(studentId);