|
@@ -113,7 +113,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
*/
|
|
|
@Override
|
|
|
public IPage<TEExamQueryDto> examQuery(IPage<Map> iPage, Long userId, Long id, String code, String name,
|
|
|
- String mode, Integer enable, Long orgId, String type) {
|
|
|
+ String mode, Integer enable, Long orgId, String type) {
|
|
|
return teExamMapper.examQuery(iPage, userId, id, code, name, mode, enable, orgId, type);
|
|
|
}
|
|
|
|
|
@@ -277,12 +277,12 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
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(),
|
|
|
+ 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()};
|
|
|
+ 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;
|
|
|
}
|
|
@@ -489,14 +489,14 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
if (Objects.isNull(clientCameraStatus) || Objects
|
|
|
.equals(MonitorStatusSourceEnum.STOP, clientCameraStatus)) {
|
|
|
switch (strs[i]) {
|
|
|
- case "CLIENT_CAMERA":
|
|
|
- throw new BusinessException(ExceptionResultEnum.CLIENT_CAMERA_OFFLINE);
|
|
|
- case "CLIENT_SCREEN":
|
|
|
- throw new BusinessException(ExceptionResultEnum.CLIENT_SCREEN_OFFLINE);
|
|
|
- case "MOBILE_FIRST":
|
|
|
- throw new BusinessException(ExceptionResultEnum.MOBILE_FIRST_OFFLINE);
|
|
|
- default:
|
|
|
- throw new BusinessException(ExceptionResultEnum.MOBILE_SECOND_OFFLINE);
|
|
|
+ case "CLIENT_CAMERA":
|
|
|
+ throw new BusinessException(ExceptionResultEnum.CLIENT_CAMERA_OFFLINE);
|
|
|
+ case "CLIENT_SCREEN":
|
|
|
+ throw new BusinessException(ExceptionResultEnum.CLIENT_SCREEN_OFFLINE);
|
|
|
+ case "MOBILE_FIRST":
|
|
|
+ throw new BusinessException(ExceptionResultEnum.MOBILE_FIRST_OFFLINE);
|
|
|
+ default:
|
|
|
+ throw new BusinessException(ExceptionResultEnum.MOBILE_SECOND_OFFLINE);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -519,19 +519,20 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
if (Objects.isNull(firstStartTime)) {
|
|
|
firstStartTime = System.currentTimeMillis();
|
|
|
ExamRecordCacheUtil.setFirstStartTime(recordId, firstStartTime, false);
|
|
|
- columns = new String[]{ExamRecordFieldEnum.first_start_time.name(),
|
|
|
- ExamRecordFieldEnum.status.name()};
|
|
|
- values = new Object[]{firstStartTime, ExamRecordStatusEnum.ANSWERING};
|
|
|
+ columns = new String[] { ExamRecordFieldEnum.first_start_time.name(),
|
|
|
+ ExamRecordFieldEnum.status.name() };
|
|
|
+ values = new Object[] { firstStartTime, ExamRecordStatusEnum.ANSWERING };
|
|
|
} else {
|
|
|
lastStartTime = System.currentTimeMillis();
|
|
|
ExamRecordCacheUtil.setLastStartTime(recordId, lastStartTime, false);
|
|
|
- columns = new String[]{ExamRecordFieldEnum.last_start_time.name(),
|
|
|
- ExamRecordFieldEnum.status.name()};
|
|
|
- values = new Object[]{lastStartTime, ExamRecordStatusEnum.ANSWERING};
|
|
|
+ columns = new String[] { ExamRecordFieldEnum.last_start_time.name(),
|
|
|
+ ExamRecordFieldEnum.status.name() };
|
|
|
+ values = new Object[] { lastStartTime, ExamRecordStatusEnum.ANSWERING };
|
|
|
}
|
|
|
Long breakId = ExamRecordCacheUtil.getLastBreakId(recordId);
|
|
|
ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
- if (Objects.nonNull(examRecordStatusEnum) && examRecordStatusEnum == ExamRecordStatusEnum.ANSWERING) {
|
|
|
+ if (Objects.nonNull(examRecordStatusEnum)
|
|
|
+ && examRecordStatusEnum == ExamRecordStatusEnum.ANSWERING) {
|
|
|
if (Objects.nonNull(breakId) && Objects.nonNull(lastStartTime)) {
|
|
|
ExamBreakCacheUtil.setStartTime(breakId, lastStartTime, true);
|
|
|
}
|
|
@@ -652,7 +653,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
*/
|
|
|
@Override
|
|
|
public AnswerSubmitBean answerSubmit(Long studentId, Long recordId, Integer mainNumber, Integer subNumber,
|
|
|
- Integer subIndex, String answer, Long version, Integer durationSeconds) {
|
|
|
+ Integer subIndex, String answer, Long version, Integer durationSeconds) {
|
|
|
|
|
|
// 校验当前登录用户和参数一致性
|
|
|
if (ExamRecordCacheUtil.getId(recordId) == null) {
|
|
@@ -748,7 +749,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
*/
|
|
|
@Override
|
|
|
public AudioLeftPlayCountSubmitBean audioLeftPlayCountSubmit(Long studentId, Long recordId, String key,
|
|
|
- Integer count) {
|
|
|
+ Integer count) {
|
|
|
|
|
|
// 校验当前登录用户和参数一致性
|
|
|
if (ExamRecordCacheUtil.getId(recordId) == null) {
|
|
@@ -903,12 +904,13 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
Long lastPrepareTime = System.currentTimeMillis();
|
|
|
ExamRecordCacheUtil.setLastPrepareTime(recordId, lastPrepareTime, false);
|
|
|
ExamRecordCacheUtil.setStatus(recordId, ExamRecordStatusEnum.RESUME_PREPARE, false);
|
|
|
- String[] columns = new String[]{ExamRecordFieldEnum.last_prepare_time.name(),
|
|
|
- ExamRecordFieldEnum.status.name()};
|
|
|
- Object[] values = new Object[]{lastPrepareTime, ExamRecordStatusEnum.RESUME_PREPARE};
|
|
|
+ String[] columns = new String[] { ExamRecordFieldEnum.last_prepare_time.name(),
|
|
|
+ ExamRecordFieldEnum.status.name() };
|
|
|
+ Object[] values = new Object[] { lastPrepareTime, ExamRecordStatusEnum.RESUME_PREPARE };
|
|
|
ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(recordId);
|
|
|
Long breakId = ExamRecordCacheUtil.getLastBreakId(recordId);
|
|
|
- if (Objects.nonNull(examRecordStatusEnum) && examRecordStatusEnum == ExamRecordStatusEnum.RESUME_PREPARE) {
|
|
|
+ if (Objects.nonNull(examRecordStatusEnum)
|
|
|
+ && examRecordStatusEnum == ExamRecordStatusEnum.RESUME_PREPARE) {
|
|
|
if (Objects.nonNull(breakId)) {
|
|
|
ExamBreakCacheUtil.setPrepareTime(breakId, lastPrepareTime, true);
|
|
|
}
|
|
@@ -1091,11 +1093,11 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
ExamRecordCacheUtil.setDurationSeconds(recordId, durationSeconds, false);
|
|
|
ExamRecordCacheUtil.setFinishType(recordId, FinishTypeEnum.valueOf(type), false);
|
|
|
ExamRecordCacheUtil.setStatus(recordId, ExamRecordStatusEnum.FINISHED, false);
|
|
|
- String[] columns = new String[]{ExamRecordFieldEnum.finish_time.name(),
|
|
|
+ String[] columns = new String[] { ExamRecordFieldEnum.finish_time.name(),
|
|
|
ExamRecordFieldEnum.duration_seconds.name(), ExamRecordFieldEnum.finish_type.name(),
|
|
|
- ExamRecordFieldEnum.status.name()};
|
|
|
- Object[] values = new Object[]{finishTime, durationSeconds, FinishTypeEnum.valueOf(type),
|
|
|
- ExamRecordStatusEnum.FINISHED};
|
|
|
+ ExamRecordFieldEnum.status.name() };
|
|
|
+ Object[] values = new Object[] { finishTime, durationSeconds, FinishTypeEnum.valueOf(type),
|
|
|
+ ExamRecordStatusEnum.FINISHED };
|
|
|
toeExamRecordService.dataUpdatesMq(recordId, columns, values);
|
|
|
//更新场次-考试记录缓存
|
|
|
ExamActivityRecordCacheUtil.setExamRecordStatus(es.getExamActivityId(), recordId,
|
|
@@ -1205,12 +1207,12 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
@Override
|
|
|
public ExamResultBean result(Long recordId) {
|
|
|
ExamResultBean ret = new ExamResultBean();
|
|
|
- TOeExamRecord er = null;
|
|
|
Integer warningCount = null;
|
|
|
Integer breachStatus = null;
|
|
|
Integer hasAnswerFile = null;
|
|
|
+ Long examId = null;
|
|
|
if (ExamRecordCacheUtil.getId(recordId) == null) {
|
|
|
- er = toeExamRecordService.getById(recordId);
|
|
|
+ TOeExamRecord er = toeExamRecordService.getById(recordId);
|
|
|
if (er == null) {
|
|
|
throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_RECORD);
|
|
|
}
|
|
@@ -1221,6 +1223,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
warningCount = er.getWarningCount();
|
|
|
breachStatus = er.getBreachStatus();
|
|
|
hasAnswerFile = er.getHasAnswerFile();
|
|
|
+ examId = er.getExamId();
|
|
|
} else {
|
|
|
ret.setDurationSeconds(ExamRecordCacheUtil.getDurationSeconds(recordId));
|
|
|
ret.setFinishTime(ExamRecordCacheUtil.getFinishTime(recordId));
|
|
@@ -1231,11 +1234,12 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
hasAnswerFile = Objects.nonNull(ExamRecordCacheUtil.getHasAnswerFile(recordId)) ?
|
|
|
ExamRecordCacheUtil.getHasAnswerFile(recordId) :
|
|
|
0;
|
|
|
+ examId = ExamRecordCacheUtil.getExamId(recordId);
|
|
|
}
|
|
|
|
|
|
//页面结果
|
|
|
if (hasAnswerFile.intValue() == 1) {
|
|
|
- ExamCacheBean exam = getExamCacheBeanNative(er.getExamId());
|
|
|
+ ExamCacheBean exam = getExamCacheBeanNative(examId);
|
|
|
if (exam.getShowObjectiveScore() != null && exam.getShowObjectiveScore().intValue() == 1) {//实时出分
|
|
|
if (InvigilateVerifyEnum.NOW.equals(exam.getInvigilateVerify())) {//实时审核
|
|
|
if (warningCount != null && warningCount.intValue() > 0) {//有预警
|
|
@@ -1291,7 +1295,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
|
|
|
*/
|
|
|
@Override
|
|
|
public void sendOeLogMessage(SystemOperationEnum systemOperationEnum, Long examStudentId, Long recordId,
|
|
|
- MqDto mqDto) {
|
|
|
+ MqDto mqDto) {
|
|
|
//mq发送消息start
|
|
|
Map<String, Object> properties = new HashMap<>();
|
|
|
properties.put("remark", systemOperationEnum.getCode());
|