| | |
| | | @Override |
| | | public Result add(ExamForm form) { |
| | | Exam entity = ExamForm.getEntityByForm(form, null); |
| | | form.getStartTime().setTime(form.getStartTime().getTime() - 8 * 60 * 60 * 1000); |
| | | form.getEndTime().setTime(form.getEndTime().getTime() - 8 * 60 * 60 * 1000); |
| | | entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), null)); |
| | | entity.setTeacherId(webContext.getCurrentUser().getId()); |
| | | // 设置乐观锁版本 |
| | |
| | | if (!ExamStatusEnum.NOT_START.equals(entity.getStatus())) { |
| | | throw new RuntimeException("只能修改还未开始的考试"); |
| | | } |
| | | // 将开始考试时间想前推8小时 |
| | | form.getStartTime().setTime(form.getStartTime().getTime() - 8 * 60 * 60 * 1000); |
| | | form.getEndTime().setTime(form.getEndTime().getTime() - 8 * 60 * 60 * 1000); |
| | | BeanUtils.copyProperties(form, entity); |
| | | entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), null)); |
| | | entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), new Date())); |
| | | // 如果修改成功发送mq消息 |
| | | if (baseMapper.updateById(entity) > 0) { |
| | | this.sendMQ(entity, entity.getUpdateVersion()); |
| | |
| | | item.setExamPaperId(null); |
| | | } |
| | | }); |
| | | // |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | |
| | | /** |
| | | * 作废 |
| | | * |
| | | * @param examId |
| | | * @param id |
| | | * @return {@link Result } |
| | | * @author |
| | | */ |
| | |
| | | Date currentTime = new Date(); |
| | | Date startTime = examInfo.getStartTime(); |
| | | Date endTime = examInfo.getEndTime(); |
| | | if (currentTime.before(startTime)) { |
| | | examInfo.setStatus(ExamStatusEnum.NOT_START); |
| | | } else if (currentTime.after(startTime) && currentTime.before(endTime)) { |
| | | examInfo.setStatus(ExamStatusEnum.ING); |
| | | } else { |
| | | examInfo.setStatus(ExamStatusEnum.FINISHED); |
| | | } |
| | | ExamStatusEnum statusByTime = ExamStatusEnum.getStatusByTime(startTime, endTime, currentTime); |
| | | examInfo.setStatus(statusByTime); |
| | | // 修改当前的考试状态 |
| | | new LambdaUpdateChainWrapper<>(examMapper) |
| | | .eq(Exam::getId, id) |