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

客户端查询交卷结果补偿措施

wangliang 3 éve
szülő
commit
026a4d1cbd

+ 9 - 6
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -250,6 +250,9 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
                 .eq(TOeExamRecord::getExamActivityId, activityId).eq(TOeExamRecord::getExamStudentId, examStudentId)
                 .eq(TOeExamRecord::getStatus, ExamRecordStatusEnum.FIRST_PREPARE);
         TOeExamRecord tOeExamRecord = toeExamRecordService.getOne(tOeExamRecordQueryWrapper);
+        if (Objects.nonNull(tOeExamRecord) && Objects.nonNull(tOeExamRecord.getStatus()) && (ExamRecordStatusEnum.FINISHED == tOeExamRecord.getStatus() || ExamRecordStatusEnum.PERSISTED == tOeExamRecord.getStatus())) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
+        }
         Long unFinishedRecordId = Objects.nonNull(tOeExamRecord) ? tOeExamRecord.getId() : null;
         if (Objects.nonNull(unFinishedRecordId)) {
             Long recordId = unFinishedRecordId;
@@ -420,7 +423,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         }
         ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
         if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
-            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_STUDENT);
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
         }
         Date now = new Date();
         if (ExamModeEnum.ANYTIME.equals(exam.getMode())) {
@@ -601,7 +604,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         }
         ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
         if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
-            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_STUDENT);
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
         }
         ExamStudentPaperStructCacheBean struct = new ExamStudentPaperStructCacheBean();
         struct.setContent(content);
@@ -635,7 +638,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         }
         ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
         if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
-            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_STUDENT);
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
         }
         ExamStudentAnswerCacheBean answerCache = (ExamStudentAnswerCacheBean) redisUtil
                 .get(RedisKeyHelper.examAnswerKey(recordId),
@@ -817,7 +820,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         }
         ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
         if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
-            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_STUDENT);
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
         }
         // 音频剩余播放次数缓存
         redisUtil.set(RedisKeyHelper.audioLeftPlayCountKey(recordId), key, count);
@@ -846,7 +849,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         }
         ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
         if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
-            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_STUDENT);
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
         }
 
         String filePath =
@@ -909,7 +912,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         }
         ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
         if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
-            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_STUDENT);
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
         }
 
         ExamResumeBean ret = null;

+ 19 - 13
themis-exam/src/main/java/com/qmth/themis/exam/api/TEExamController.java

@@ -137,7 +137,9 @@ public class TEExamController {
         } else if (Objects.nonNull(status) && Objects.equals(ExamRecordStatusEnum.FIRST_PREPARE, status)) {
             ExamConstant.sendExamStopMsg(Long.valueOf(recordId), false, true);
         } else {
-            if (Objects.nonNull(status)) {
+            if (Objects.nonNull(status) && (ExamRecordStatusEnum.FINISHED == status || ExamRecordStatusEnum.PERSISTED == status)) {
+                throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
+            } else {
                 throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ERROR);
             }
         }
@@ -346,18 +348,12 @@ public class TEExamController {
 
         if (Objects.nonNull(examRecordStatusEnum) && (ExamRecordStatusEnum.FINISHED == examRecordStatusEnum ||
                 ExamRecordStatusEnum.PERSISTED == examRecordStatusEnum)) {
-            Map<String, Object> properties = new HashMap<>();
-            properties.put(SystemConstant.REMOVE_WEBSOCKET, true);
-            MqDto clientMqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.OE_WEBSOCKET_EXAM_STOP.name(),
-                    param.getRecordId(), MqTagEnum.OE_WEBSOCKET_EXAM_STOP, String.valueOf(param.getRecordId()), properties,
-                    String.valueOf(param.getRecordId()));
-            mqDtoService.assembleSendOneOrderMsg(clientMqDto);
-        } else {
-            if (Objects.nonNull(examRecordStatusEnum) && (
-                    !Objects.equals(ExamRecordStatusEnum.FIRST_PREPARE, examRecordStatusEnum) && !Objects
-                            .equals(ExamRecordStatusEnum.RESUME_PREPARE, examRecordStatusEnum))) {
-                throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ERROR);
-            }
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
+        }
+        if (Objects.nonNull(examRecordStatusEnum) && (
+                !Objects.equals(ExamRecordStatusEnum.FIRST_PREPARE, examRecordStatusEnum) && !Objects
+                        .equals(ExamRecordStatusEnum.RESUME_PREPARE, examRecordStatusEnum))) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ERROR);
         }
         return ResultUtil.ok(teExamService.result(param.getRecordId()));
     }
@@ -370,6 +366,11 @@ public class TEExamController {
             throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
         }
         ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(param.getRecordId());
+        if (Objects.nonNull(examRecordStatusEnum) && (ExamRecordStatusEnum.FINISHED == examRecordStatusEnum ||
+                ExamRecordStatusEnum.PERSISTED == examRecordStatusEnum)) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
+        }
+
         if (Objects.nonNull(examRecordStatusEnum) && (
                 !Objects.equals(ExamRecordStatusEnum.FIRST_PREPARE, examRecordStatusEnum) && !Objects
                         .equals(ExamRecordStatusEnum.RESUME_PREPARE, examRecordStatusEnum))) {
@@ -386,6 +387,11 @@ public class TEExamController {
             throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
         }
         ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(param.getRecordId());
+        if (Objects.nonNull(examRecordStatusEnum) && (ExamRecordStatusEnum.FINISHED == examRecordStatusEnum ||
+                ExamRecordStatusEnum.PERSISTED == examRecordStatusEnum)) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
+        }
+
         if (Objects.nonNull(examRecordStatusEnum) && (
                 !Objects.equals(ExamRecordStatusEnum.FIRST_PREPARE, examRecordStatusEnum) && !Objects
                         .equals(ExamRecordStatusEnum.RESUME_PREPARE, examRecordStatusEnum))) {