|
@@ -1,25 +1,30 @@
|
|
package com.qmth.themis.business.service.impl;
|
|
package com.qmth.themis.business.service.impl;
|
|
|
|
|
|
-import com.qmth.themis.business.bean.status.ExamStatusBean;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.qmth.themis.business.cache.ExamActivityRecordCacheUtil;
|
|
import com.qmth.themis.business.cache.ExamRecordCacheUtil;
|
|
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.RedisKeyHelper;
|
|
import com.qmth.themis.business.constant.SystemConstant;
|
|
import com.qmth.themis.business.constant.SystemConstant;
|
|
import com.qmth.themis.business.dto.MqDto;
|
|
import com.qmth.themis.business.dto.MqDto;
|
|
|
|
+import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
|
|
|
|
+import com.qmth.themis.business.entity.TOeExamBreakHistory;
|
|
import com.qmth.themis.business.enums.ExamRecordStatusEnum;
|
|
import com.qmth.themis.business.enums.ExamRecordStatusEnum;
|
|
import com.qmth.themis.business.enums.MqTagEnum;
|
|
import com.qmth.themis.business.enums.MqTagEnum;
|
|
import com.qmth.themis.business.service.CommonService;
|
|
import com.qmth.themis.business.service.CommonService;
|
|
import com.qmth.themis.business.service.MqDtoService;
|
|
import com.qmth.themis.business.service.MqDtoService;
|
|
|
|
+import com.qmth.themis.business.service.TOeExamBreakHistoryService;
|
|
import com.qmth.themis.business.service.TOeExamRecordService;
|
|
import com.qmth.themis.business.service.TOeExamRecordService;
|
|
import com.qmth.themis.business.util.MqUtil;
|
|
import com.qmth.themis.business.util.MqUtil;
|
|
import com.qmth.themis.business.util.RedisUtil;
|
|
import com.qmth.themis.business.util.RedisUtil;
|
|
-import com.qmth.themis.common.enums.ExceptionResultEnum;
|
|
|
|
-import com.qmth.themis.common.exception.BusinessException;
|
|
|
|
|
|
+import com.qmth.themis.business.util.ServletUtil;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
|
|
+import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
|
|
@@ -34,6 +39,7 @@ public class CommonServiceImpl implements CommonService {
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
TOeExamRecordService examRecordService;
|
|
TOeExamRecordService examRecordService;
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
RedisUtil redisUtil;
|
|
RedisUtil redisUtil;
|
|
|
|
|
|
@@ -43,6 +49,9 @@ public class CommonServiceImpl implements CommonService {
|
|
@Resource
|
|
@Resource
|
|
MqUtil mqUtil;
|
|
MqUtil mqUtil;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ TOeExamBreakHistoryService tOeExamBreakHistoryService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void persisted(Long recordId) {
|
|
public void persisted(Long recordId) {
|
|
String lockKey = SystemConstant.REDIS_LOCK_EXAM_RECORD_PERSISTED_PREFIX + recordId;
|
|
String lockKey = SystemConstant.REDIS_LOCK_EXAM_RECORD_PERSISTED_PREFIX + recordId;
|
|
@@ -79,6 +88,23 @@ public class CommonServiceImpl implements CommonService {
|
|
redisUtil.delete(RedisKeyHelper.audioLeftPlayCountKey(recordId));
|
|
redisUtil.delete(RedisKeyHelper.audioLeftPlayCountKey(recordId));
|
|
redisUtil.delete(RedisKeyHelper.livenessVerifyCacheKey(recordId));
|
|
redisUtil.delete(RedisKeyHelper.livenessVerifyCacheKey(recordId));
|
|
redisUtil.delete(RedisKeyHelper.faceVerifyCacheKey(recordId));
|
|
redisUtil.delete(RedisKeyHelper.faceVerifyCacheKey(recordId));
|
|
|
|
+ //2021-03-01新增
|
|
|
|
+ redisUtil.delete(RedisKeyHelper.studentPaperStructKey(recordId));
|
|
|
|
+ //先查询之前的断点记录
|
|
|
|
+ QueryWrapper<TOeExamBreakHistory> tOeExamBreakHistoryQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ tOeExamBreakHistoryQueryWrapper.lambda().eq(TOeExamBreakHistory::getExamRecordId, recordId);
|
|
|
|
+ List<TOeExamBreakHistory> tOeExamBreakHistoryList = tOeExamBreakHistoryService.list(tOeExamBreakHistoryQueryWrapper);
|
|
|
|
+ //删除历史断点缓存
|
|
|
|
+ if (Objects.nonNull(tOeExamBreakHistoryList) && tOeExamBreakHistoryList.size() > 0) {
|
|
|
|
+ tOeExamBreakHistoryList.forEach(s -> {
|
|
|
|
+ redisUtil.delete(RedisKeyHelper.examBreakCacheKey(s.getId()));
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ //删除未完成的考试id
|
|
|
|
+ TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
|
|
+ ExamingDataCacheUtil.deleteUnFinishedRecordId(teStudent.getId());
|
|
|
|
+ //删除场次考试记录
|
|
|
|
+ ExamActivityRecordCacheUtil.deleteExamRecordStatus(ExamRecordCacheUtil.getExamActivityId(recordId), recordId);
|
|
log.info("end persisted,recordId:" + recordId);
|
|
log.info("end persisted,recordId:" + recordId);
|
|
} finally {
|
|
} finally {
|
|
redisUtil.releaseLock(lockKey);
|
|
redisUtil.releaseLock(lockKey);
|