|
@@ -228,25 +228,8 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
, tencentYunUtil.getTencentYunDomain().getAppId());
|
|
|
|
|
|
TEExamActivityDto teExamActivityDto = new TEExamActivityDto(examCache, ac, examStudentCacheBean,
|
|
|
- examStudentId, ec, ExamRecordCacheUtil.getStartTime(recordId),
|
|
|
- ExamRecordCacheUtil.getEndTime(recordId), ExamRecordCacheUtil.getOpeningSeconds(recordId),
|
|
|
- ExamRecordCacheUtil.getMinDurationSeconds(recordId),
|
|
|
- ExamRecordCacheUtil.getMaxDurationSeconds(recordId), ExamRecordCacheUtil.getForceFinish(recordId));
|
|
|
+ examStudentId, ec, recordId);
|
|
|
prepare.setTeExamActivityDto(teExamActivityDto);
|
|
|
-
|
|
|
- ExamRecordCacheUtil.setStartTime(recordId, ac.getStartTime(), false);
|
|
|
- ExamRecordCacheUtil.setEndTime(recordId, ac.getFinishTime(), false);
|
|
|
- ExamRecordCacheUtil.setOpeningSeconds(recordId, ac.getOpeningSeconds(), false);
|
|
|
- ExamRecordCacheUtil.setMinDurationSeconds(recordId, examCache.getMinDurationSeconds(), false);
|
|
|
- ExamRecordCacheUtil.setMaxDurationSeconds(recordId, ac.getMaxDurationSeconds(), false);
|
|
|
- ExamRecordCacheUtil.setForceFinish(recordId, examCache.getForceFinish(), false);
|
|
|
- String[] columns = new String[]{ExamRecordFieldEnum.start_time.name(),
|
|
|
- ExamRecordFieldEnum.end_time.name(), ExamRecordFieldEnum.opening_seconds.name(),
|
|
|
- ExamRecordFieldEnum.min_duration_seconds.name(),
|
|
|
- ExamRecordFieldEnum.max_duration_seconds.name(), ExamRecordFieldEnum.force_finish.name()};
|
|
|
- Object[] values = new Object[]{ac.getStartTime(), ac.getFinishTime(), ac.getOpeningSeconds(),
|
|
|
- examCache.getMinDurationSeconds(), ac.getMaxDurationSeconds(), examCache.getForceFinish()};
|
|
|
- toeExamRecordService.dataUpdatesMq(recordId, columns, values);
|
|
|
return prepare;
|
|
|
}
|
|
|
}
|
|
@@ -312,6 +295,40 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
, tencentYunUtil.getTencentYunDomain().getAppId());
|
|
|
TEExamActivityDto teExamActivityDto = teExamActivityService.getWaitingExam(activityId, examStudentId, es.getCourseCode());
|
|
|
prepare.setTeExamActivityDto(teExamActivityDto);
|
|
|
+
|
|
|
+ ExamRecordCacheUtil.setStartTime(recordId, ac.getStartTime(), false);
|
|
|
+ ExamRecordCacheUtil.setEndTime(recordId, ac.getFinishTime(), false);
|
|
|
+ ExamRecordCacheUtil.setOpeningSeconds(recordId, ac.getOpeningSeconds(), false);
|
|
|
+ ExamRecordCacheUtil.setMinDurationSeconds(recordId, examCache.getMinDurationSeconds(), false);
|
|
|
+ ExamRecordCacheUtil.setMaxDurationSeconds(recordId, ac.getMaxDurationSeconds(), false);
|
|
|
+ ExamRecordCacheUtil.setForceFinish(recordId, examCache.getForceFinish(), false);
|
|
|
+ ExamRecordCacheUtil.setCameraPhotoUpload(recordId, examCache.getCameraPhotoUpload(), false);
|
|
|
+ ExamRecordCacheUtil.setMobilePhotoUpload(recordId, examCache.getMobilePhotoUpload(), false);
|
|
|
+ ExamRecordCacheUtil.setEntryAuthenticationPolicy(recordId, examCache.getEntryAuthenticationPolicy().name(), false);
|
|
|
+ ExamRecordCacheUtil.setInProcessFaceVerifyStatus(recordId, examCache.getInProcessFaceVerify(), false);
|
|
|
+ ExamRecordCacheUtil.setInProcessLivenessVerifyStatus(recordId, examCache.getInProcessLivenessVerify(), false);
|
|
|
+ ExamRecordCacheUtil.setInProcessRealnessVerifyStatus(recordId, examCache.getInProcessRealnessVerify(), false);
|
|
|
+ ExamRecordCacheUtil.setInProcessFaceStrangerIgnore(recordId, examCache.getInProcessFaceStrangerIgnore(), false);
|
|
|
+ ExamRecordCacheUtil.setInProcessLivenessFixedRange(recordId, examCache.getInProcessLivenessFixedRange(), false);
|
|
|
+ ExamRecordCacheUtil.setInProcessLivenessJudgePolicy(recordId, examCache.getInProcessLivenessJudgePolicy().name(), false);
|
|
|
+ ExamRecordCacheUtil.setMonitorVideoSource(recordId, examCache.getMonitorVideoSource(), false);
|
|
|
+
|
|
|
+ String[] columns = new String[]{ExamRecordFieldEnum.start_time.name(),
|
|
|
+ ExamRecordFieldEnum.end_time.name(), ExamRecordFieldEnum.opening_seconds.name(),
|
|
|
+ ExamRecordFieldEnum.min_duration_seconds.name(),
|
|
|
+ ExamRecordFieldEnum.max_duration_seconds.name(), ExamRecordFieldEnum.force_finish.name(),
|
|
|
+ ExamRecordFieldEnum.camera_photo_upload.name(), ExamRecordFieldEnum.mobile_photo_upload.name(),
|
|
|
+ ExamRecordFieldEnum.entry_authentication_policy.name(), ExamRecordFieldEnum.in_process_face_verify_status.name(),
|
|
|
+ ExamRecordFieldEnum.in_process_liveness_verify_status.name(), ExamRecordFieldEnum.in_process_realness_verify_status.name(),
|
|
|
+ ExamRecordFieldEnum.in_process_face_stranger_ignore.name(), ExamRecordFieldEnum.in_process_liveness_fixed_range.name(),
|
|
|
+ ExamRecordFieldEnum.in_process_liveness_judge_policy.name(), ExamRecordFieldEnum.monitor_video_source.name()};
|
|
|
+ Object[] values = new Object[]{ac.getStartTime(), ac.getFinishTime(), ac.getOpeningSeconds(),
|
|
|
+ examCache.getMinDurationSeconds(), ac.getMaxDurationSeconds(), examCache.getForceFinish(),
|
|
|
+ examCache.getCameraPhotoUpload(), examCache.getMonitorVideoSource(), examCache.getEntryAuthenticationPolicy().name(),
|
|
|
+ examCache.getInProcessFaceVerify(), examCache.getInProcessLivenessVerify(), examCache.getInProcessRealnessVerify(),
|
|
|
+ examCache.getInProcessFaceStrangerIgnore(), examCache.getInProcessLivenessFixedRange(), examCache.getInProcessLivenessJudgePolicy().name(),
|
|
|
+ examCache.getMonitorVideoSource()};
|
|
|
+ toeExamRecordService.dataUpdatesMq(recordId, columns, values);
|
|
|
// 更新考生缓存
|
|
|
redisUtil.set(RedisKeyHelper.examStudentCacheKey(examStudentId), es);
|
|
|
//更新场次-考试记录缓存
|
|
@@ -528,19 +545,11 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
Long date = ExamRecordCacheUtil.getExamFinalFinishTime(recordId);
|
|
|
if (Objects.isNull(date)) {
|
|
|
Long startTime = ExamRecordCacheUtil.getStartTime(recordId);
|
|
|
- Integer activityMaxDurationSeconds = Objects.nonNull(ac.getMaxDurationSeconds()) ?
|
|
|
- ac.getMaxDurationSeconds() :
|
|
|
- null;
|
|
|
- Integer maxDurationSeconds = Objects.nonNull(exam.getMaxDurationSeconds()) ?
|
|
|
- exam.getMaxDurationSeconds() :
|
|
|
- null;
|
|
|
- Integer finalMaxDurationSeconds = Objects.nonNull(activityMaxDurationSeconds) ?
|
|
|
- activityMaxDurationSeconds :
|
|
|
- maxDurationSeconds;
|
|
|
+ Integer maxDurationSeconds = ExamRecordCacheUtil.getMaxDurationSeconds(recordId);
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
- if (Objects.nonNull(finalMaxDurationSeconds)) {
|
|
|
+ if (Objects.nonNull(maxDurationSeconds)) {
|
|
|
calendar.setTimeInMillis(startTime);
|
|
|
- calendar.add(Calendar.SECOND, finalMaxDurationSeconds.intValue());
|
|
|
+ calendar.add(Calendar.SECOND, maxDurationSeconds.intValue());
|
|
|
}
|
|
|
Integer breakResumeCount = exam.getBreakResumeCount();
|
|
|
Integer breakExpireSeconds = Objects.isNull(exam.getBreakExpireSeconds()) ?
|
|
@@ -831,10 +840,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
ExamActivityCacheBean ac = teExamActivityService.getExamActivityCacheBean(es.getExamActivityId());
|
|
|
ExamCourseCacheBean examCourseCacheBean = teExamCourseService.getExamCourseCacheBean(es.getExamId(), es.getCourseCode());
|
|
|
TEExamActivityDto teExamActivityDto = new TEExamActivityDto(ec, ac, es,
|
|
|
- examStudentId, examCourseCacheBean, ExamRecordCacheUtil.getStartTime(recordId),
|
|
|
- ExamRecordCacheUtil.getEndTime(recordId), ExamRecordCacheUtil.getOpeningSeconds(recordId),
|
|
|
- ExamRecordCacheUtil.getMinDurationSeconds(recordId),
|
|
|
- ExamRecordCacheUtil.getMaxDurationSeconds(recordId), ExamRecordCacheUtil.getForceFinish(recordId));
|
|
|
+ examStudentId, examCourseCacheBean, recordId);
|
|
|
ret.setTeExamActivityDto(teExamActivityDto);
|
|
|
|
|
|
ExamStudentPaperStructCacheBean struct = (ExamStudentPaperStructCacheBean) redisUtil
|