|
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qmth.themis.business.bean.exam.*;
|
|
|
import com.qmth.themis.business.cache.ExamActivityRecordCacheUtil;
|
|
|
import com.qmth.themis.business.cache.ExamRecordCacheUtil;
|
|
|
+import com.qmth.themis.business.cache.ExamingDataCacheUtil;
|
|
|
import com.qmth.themis.business.cache.RedisKeyHelper;
|
|
|
import com.qmth.themis.business.cache.bean.*;
|
|
|
import com.qmth.themis.business.config.SystemConfig;
|
|
@@ -184,9 +185,9 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
throw new BusinessException("考生Id和当前登录用户不一致");
|
|
|
}
|
|
|
ExamCacheBean examCache = getExamCacheBean(es.getExamId());
|
|
|
- TEStudentCacheDto teStudentCacheDto = (TEStudentCacheDto) redisUtil.getStudent(es.getStudentId());
|
|
|
- if (teStudentCacheDto.getUnFinishedRecordId() != null) {
|
|
|
- Long recordId = teStudentCacheDto.getUnFinishedRecordId();
|
|
|
+ Long unFinishedRecordId=ExamingDataCacheUtil.getUnFinishedRecordId(studentId);
|
|
|
+ if (unFinishedRecordId != null) {
|
|
|
+ Long recordId = unFinishedRecordId;
|
|
|
if (examStudentId.equals(ExamRecordCacheUtil.getExamStudentId(recordId))) {//当前考生已存在候考的考试记录
|
|
|
ExamPaperCacheBean ep = teExamPaperService.getExamPaperCacheBean(ExamRecordCacheUtil.getPaperId(recordId));
|
|
|
ExamCourseCacheBean ec = teExamCourseService.getExamCourseCacheBean(es.getExamId(), es.getCourseCode());
|
|
@@ -288,9 +289,9 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
redisUtil.set(RedisKeyHelper.examStudentCacheKey(examStudentId), es);
|
|
|
//更新场次-考试记录缓存
|
|
|
ExamActivityRecordCacheUtil.setExamRecordStatus(activityId, recordId, ExamRecordCacheUtil.getStatus(recordId));
|
|
|
- teStudentCacheDto.setUnFinishedRecordId(recordId);
|
|
|
- redisUtil.setStudent(studentId, teStudentCacheDto);
|
|
|
+ ExamingDataCacheUtil.setUnFinishedRecordId(studentId,recordId);
|
|
|
//mq发送消息start
|
|
|
+ TEStudentCacheDto teStudentCacheDto = (TEStudentCacheDto) redisUtil.getStudent(studentId);
|
|
|
MqDto mqDto = new MqDto(MqTopicEnum.THEMIS_TOPIC.getCode(), MqTagEnum.STUDENT.name(), SystemOperationEnum.FIRST_PREPARE, MqTagEnum.STUDENT, String.valueOf(teStudentCacheDto.getId()), teStudentCacheDto.getIdentity());
|
|
|
this.sendOeLogMessage(SystemOperationEnum.FIRST_PREPARE, examStudentId, recordId, mqDto);
|
|
|
updateExamStudent(examStudentId, alreadyExamCount, recordId);
|
|
@@ -749,7 +750,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
ExamActivityRecordCacheUtil.setExamRecordStatus(es.getExamActivityId(), recordId, ExamRecordCacheUtil.getStatus(recordId));
|
|
|
//更新未完成考试记录id
|
|
|
TEStudentCacheDto teStudentCacheDto = (TEStudentCacheDto) redisUtil.getStudent(es.getStudentId());
|
|
|
- teStudentCacheDto.setUnFinishedRecordId(null);
|
|
|
+ ExamingDataCacheUtil.deleteUnFinishedRecordId(studentId);
|
|
|
redisUtil.setStudent(teStudentCacheDto.getId(), teStudentCacheDto);
|
|
|
//异步持久化
|
|
|
checkToPersisted(recordId);
|