|
@@ -255,7 +255,7 @@ 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())) {
|
|
|
+ if (Objects.nonNull(tOeExamRecord) && Objects.nonNull(tOeExamRecord.getStatus()) && (ExamRecordStatusEnum.FINISHED == tOeExamRecord.getStatus() || ExamRecordStatusEnum.PERSISTED == tOeExamRecord.getStatus()) || tOeExamRecord.getStatus() == ExamRecordStatusEnum.JUNK) {
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
|
|
|
}
|
|
|
Long unFinishedRecordId = Objects.nonNull(tOeExamRecord) ? tOeExamRecord.getId() : null;
|
|
@@ -433,7 +433,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_ACTIVITY);
|
|
|
}
|
|
|
ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
|
|
|
+ if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta) || sta == ExamRecordStatusEnum.JUNK) {
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
|
|
|
}
|
|
|
Date now = new Date();
|
|
@@ -617,7 +617,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_ID_NOT_EQUALY);
|
|
|
}
|
|
|
ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
|
|
|
+ if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta) || sta == ExamRecordStatusEnum.JUNK) {
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
|
|
|
}
|
|
|
ExamStudentPaperStructCacheBean struct = new ExamStudentPaperStructCacheBean();
|
|
@@ -650,8 +650,11 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_ID_NOT_EQUALY);
|
|
|
}
|
|
|
ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
|
|
|
+ WebsocketStatusEnum websocketStatusEnum = ExamRecordCacheUtil.getClientWebsocketStatus(recordId);
|
|
|
+ if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta) || sta == ExamRecordStatusEnum.JUNK) {
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
|
|
|
+ } else if (sta != ExamRecordStatusEnum.ANSWERING || (Objects.nonNull(websocketStatusEnum) && websocketStatusEnum == WebsocketStatusEnum.OFF_LINE)) {
|
|
|
+ throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_ERROR);
|
|
|
}
|
|
|
ExamStudentAnswerCacheBean answerCache = (ExamStudentAnswerCacheBean) redisUtil
|
|
|
.get(RedisKeyHelper.examAnswerKey(recordId),
|
|
@@ -843,7 +846,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_ID_NOT_EQUALY);
|
|
|
}
|
|
|
ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
|
|
|
+ if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta) || sta == ExamRecordStatusEnum.JUNK) {
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
|
|
|
}
|
|
|
// 音频剩余播放次数缓存
|
|
@@ -872,7 +875,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_ID_NOT_EQUALY);
|
|
|
}
|
|
|
ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
|
|
|
+ if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta) || sta == ExamRecordStatusEnum.JUNK) {
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
|
|
|
}
|
|
|
|
|
@@ -935,7 +938,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_PAPER);
|
|
|
}
|
|
|
ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
|
|
|
+ if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta) || sta == ExamRecordStatusEnum.JUNK) {
|
|
|
throw new BusinessException(ExceptionResultEnum.EXAM_FINISH);
|
|
|
}
|
|
|
|
|
@@ -1134,7 +1137,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
ExamCacheBean exam = getExamCacheBeanNative(es.getExamId());
|
|
|
ret.setPostNotice(exam.getPostNotice());
|
|
|
ExamRecordStatusEnum sta = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
|
|
|
+ if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta) || sta == ExamRecordStatusEnum.JUNK) {
|
|
|
ret.setStatus(FinishExamResultEnum.NORMAL);
|
|
|
return ret;
|
|
|
}
|