|
@@ -81,7 +81,7 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
|
|
|
TSLogService tsLogService;
|
|
|
|
|
|
@Resource
|
|
|
- CacheService cacheService;
|
|
|
+ TOeExamRecordService tOeExamRecordService;
|
|
|
|
|
|
/**
|
|
|
* 表是否存在
|
|
@@ -307,9 +307,9 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
|
|
|
if (ac == null) {
|
|
|
return ret;
|
|
|
}
|
|
|
- if (ac.getEnable() != null && ac.getEnable().intValue() == 0) {
|
|
|
- return ret;
|
|
|
- }
|
|
|
+// if (ac.getEnable() != null && ac.getEnable().intValue() == 0) {
|
|
|
+// return ret;
|
|
|
+// }
|
|
|
ret = new ExamActivityCacheBean();
|
|
|
ret.setId(ac.getId());
|
|
|
ret.setCode(ac.getCode());
|
|
@@ -367,39 +367,48 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
|
|
|
if (count == 0) {
|
|
|
teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.AFTER_AUDIO_ATTACHMENT_Id, AudioTypeEnum.AFTER.getTitle(), AudioTypeEnum.AFTER, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.AFTER_AUDIO_SECOND, teExam, s));//考试结束前语音
|
|
|
}
|
|
|
- TEExamActivity teExamActivityDb = teExamActivityService.getById(s.getId());
|
|
|
- if (Objects.nonNull(teExamActivityDb)) {
|
|
|
- s.setCode(teExamActivityDb.getCode());
|
|
|
- if (!s.equals(teExamActivityDb)) {//不一样则日志记录
|
|
|
- if (s.getFinishTime().longValue() < teExamActivityDb.getFinishTime().longValue()) {
|
|
|
- throw new BusinessException("修改的场次结束时间只能大于未修改前的场次结束时间");
|
|
|
- }
|
|
|
- if (Objects.nonNull(teExam.getForceFinish()) && teExam.getForceFinish().intValue() == 1
|
|
|
- && s.getFinishTime().longValue() != teExamActivityDb.getFinishTime().longValue()) {
|
|
|
- //删除quartz任务,发送mq消息start
|
|
|
- Map<String, Object> prop = new HashMap<>();
|
|
|
- prop.put(SystemConstant.OPER, SystemConstant.DELETE);
|
|
|
- prop.put(SystemConstant.EXAM, teExam);
|
|
|
- MqDto mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.EXAM_ACTIVITY.name(),
|
|
|
- JacksonUtil.parseJson(Arrays.asList(s)), MqTagEnum.EXAM_ACTIVITY,
|
|
|
- String.valueOf(teExam.getId()), prop, tbUser.getName());
|
|
|
- mqDtoService.assembleSendOneOrderMsg(mqDto);
|
|
|
- //删除quartz任务,发送mq消息end
|
|
|
-
|
|
|
- //新增quartz任务,发送mq消息start
|
|
|
- prop = new HashMap<>();
|
|
|
- prop.put(SystemConstant.OPER, SystemConstant.INSERT);
|
|
|
- prop.put(SystemConstant.EXAM, teExam);
|
|
|
- mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.EXAM_ACTIVITY.name(),
|
|
|
- JacksonUtil.parseJson(Arrays.asList(s)), MqTagEnum.EXAM_ACTIVITY,
|
|
|
- String.valueOf(teExam.getId()), prop, tbUser.getName());
|
|
|
- mqDtoService.assembleSendOneOrderMsg(mqDto);
|
|
|
- //新增quartz任务,发送mq消息end
|
|
|
+ if (Objects.nonNull(s.getEnable()) && s.getEnable().intValue() == 0) {
|
|
|
+ Integer examCount = tOeExamRecordService.findByExamIdOrExamActivityIdCount(teExam.getId(), s.getId());
|
|
|
+ if (Objects.nonNull(examCount) && examCount.intValue() > 0) {
|
|
|
+ throw new BusinessException("已有考试记录不能禁用");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (Objects.nonNull(s.getFinishTime())) {
|
|
|
+ TEExamActivity teExamActivityDb = teExamActivityService.getById(s.getId());
|
|
|
+ if (Objects.nonNull(teExamActivityDb)) {
|
|
|
+ s.setCode(teExamActivityDb.getCode());
|
|
|
+ if (!s.equals(teExamActivityDb)) {//不一样则日志记录
|
|
|
+ if (s.getFinishTime().longValue() < teExamActivityDb.getFinishTime().longValue()) {
|
|
|
+ throw new BusinessException("修改的场次结束时间只能大于未修改前的场次结束时间");
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(teExam.getForceFinish()) && teExam.getForceFinish().intValue() == 1
|
|
|
+ && s.getFinishTime().longValue() != teExamActivityDb.getFinishTime().longValue()) {
|
|
|
+ //删除quartz任务,发送mq消息start
|
|
|
+ Map<String, Object> prop = new HashMap<>();
|
|
|
+ prop.put(SystemConstant.OPER, SystemConstant.DELETE);
|
|
|
+ prop.put(SystemConstant.EXAM, teExam);
|
|
|
+ MqDto mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.EXAM_ACTIVITY.name(),
|
|
|
+ JacksonUtil.parseJson(Arrays.asList(s)), MqTagEnum.EXAM_ACTIVITY,
|
|
|
+ String.valueOf(teExam.getId()), prop, tbUser.getName());
|
|
|
+ mqDtoService.assembleSendOneOrderMsg(mqDto);
|
|
|
+ //删除quartz任务,发送mq消息end
|
|
|
+
|
|
|
+ //新增quartz任务,发送mq消息start
|
|
|
+ prop = new HashMap<>();
|
|
|
+ prop.put(SystemConstant.OPER, SystemConstant.INSERT);
|
|
|
+ prop.put(SystemConstant.EXAM, teExam);
|
|
|
+ mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.EXAM_ACTIVITY.name(),
|
|
|
+ JacksonUtil.parseJson(Arrays.asList(s)), MqTagEnum.EXAM_ACTIVITY,
|
|
|
+ String.valueOf(teExam.getId()), prop, tbUser.getName());
|
|
|
+ mqDtoService.assembleSendOneOrderMsg(mqDto);
|
|
|
+ //新增quartz任务,发送mq消息end
|
|
|
+ }
|
|
|
+ tsLogService.save(new TSLog(LogEnum.EXAM_ACTIVITY, s.getCode(),
|
|
|
+ JacksonUtil.parseJson(teExamActivityDb),
|
|
|
+ JacksonUtil.parseJson(s),
|
|
|
+ tbUser.getId(), s.getId()));
|
|
|
+ }
|
|
|
}
|
|
|
- tsLogService.save(new TSLog(LogEnum.EXAM_ACTIVITY, s.getCode(),
|
|
|
- JacksonUtil.parseJson(teExamActivityDb),
|
|
|
- JacksonUtil.parseJson(s),
|
|
|
- tbUser.getId(), s.getId()));
|
|
|
}
|
|
|
}
|
|
|
} else {
|