|
@@ -390,8 +390,11 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
|
|
|
updateUserExamAndResult(score, userExam);
|
|
|
}
|
|
|
|
|
|
- //异步删除自动交卷任务
|
|
|
- ThreadPoolUtil.getExecutor().execute(() -> this.deleteAutoCommitJob(dto.getUserExamId()));
|
|
|
+ //异步删除自动交卷任务,清除redis缓存
|
|
|
+ ThreadPoolUtil.getExecutor().execute(() -> {
|
|
|
+ this.deleteAutoCommitJob(dto.getUserExamId());
|
|
|
+ deleteCacheAnswer(dto.getUserExamId());
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
|
|
@@ -547,4 +550,28 @@ public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IE
|
|
|
wrapper.eq(Exam::getPaperId, paperId);
|
|
|
return this.count(wrapper) > 0 ? true : false;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取缓存的考试答案
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ExamSubmitDTO getCacheAnswer(String userExamId) {
|
|
|
+ Object answerObject = redisUtil.get(userExamId);
|
|
|
+ if (!Objects.isNull(answerObject)) {
|
|
|
+ return JSON.parseObject(JSON.parse(String.valueOf(answerObject)).toString(), ExamSubmitDTO.class);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 清除缓存的考试答案
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void deleteCacheAnswer(String userExamId) {
|
|
|
+ redisUtil.del(userExamId);
|
|
|
+ }
|
|
|
}
|