src/main/java/com/ycl/jxkg/controller/student/StudentExamController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/ExamService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ycl/jxkg/controller/student/StudentExamController.java
File was renamed from src/main/java/com/ycl/jxkg/controller/student/ExamController.java @@ -17,13 +17,30 @@ @RestController @RequiredArgsConstructor @RequestMapping(value = "/api/student/exampaper/answer") public class ExamController { public class StudentExamController { private final ExamService examService; /** * 主动提交试卷 * * @param submitData * @return */ @PostMapping("/exam/submit") public Result examSubmit(@RequestBody @Validated ExamSubmitVO submitData) { return examService.examSubmit(submitData); } /** * 定时临时保存试卷 * * @param submitData * @return */ @PostMapping("/exam/timing") public Result timingExamSubmit(@RequestBody @Validated ExamSubmitVO submitData) { return examService.timingSubmit(submitData); } } src/main/java/com/ycl/jxkg/service/ExamService.java
@@ -66,10 +66,18 @@ Result all(); /** * 考试提交 * 主动提交试卷 * * @param submitData * @return */ Result examSubmit(ExamSubmitVO submitData); /** * 定时保存试卷,防止考试崩溃 * * @param submitData * @return */ Result timingSubmit(ExamSubmitVO submitData); } src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -174,24 +174,45 @@ }); // 阅卷后才往exam_paper_answer保存考试成绩、以及保存到exam_paper_customer_answer // 现在只需要保存到一张临时表 // 该接口是主动提交,所以状态都设置为完成,以便后续老师阅卷 saveTempExam(submitData, ExamSubmitTempStatusEnum.FINISH); return Result.ok(); } @Override public Result timingSubmit(ExamSubmitVO submitData) { saveTempExam(submitData, ExamSubmitTempStatusEnum.TEMP); return Result.ok(); } /** * 保存临时试卷 * * @param submitData 前端传递的试卷数据 * @param status 试卷的状态 */ public void saveTempExam(ExamSubmitVO submitData, ExamSubmitTempStatusEnum status) { ExamSubmitTemp one = new LambdaQueryChainWrapper<>(examSubmitTempMapper) .eq(ExamSubmitTemp::getExamId, submitData.getExamId()) .eq(ExamSubmitTemp::getUserId, webContext.getCurrentUser().getId()) .one(); if (Objects.nonNull(one)) { if (ExamSubmitTempStatusEnum.FINISH.equals(one.getStatus())) { return; } one.setDoTime(submitData.getDoTime()); one.setExamSubmit(JSON.toJSONString(submitData.getQuestionList())); one.setCreateTime(new Date()); one.setStatus(status); examSubmitTempMapper.updateById(one); } else { ExamSubmitTemp examSubmitTemp = new ExamSubmitTemp(); examSubmitTemp.setExamId(submitData.getExamId()); examSubmitTemp.setDoTime(submitData.getDoTime()); examSubmitTemp.setStatus(ExamSubmitTempStatusEnum.FINISH); examSubmitTemp.setStatus(status); examSubmitTemp.setUserId(webContext.getCurrentUser().getId()); examSubmitTemp.setExamSubmit(JSON.toJSONString(submitData.getQuestionList())); examSubmitTempMapper.insert(examSubmitTemp); } return Result.ok(); } }