xiangpei
2024-06-28 02d8e9c93d128ad87bd891cc45d652727862df5f
定时保存、主动保存接收对象调整
4个文件已修改
29 ■■■■■ 已修改文件
src/main/java/com/ycl/jxkg/controller/student/StudentExamController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/StartExamVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/ExamService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/controller/student/StudentExamController.java
@@ -3,6 +3,7 @@
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.domain.query.ExamQuery;
import com.ycl.jxkg.domain.vo.ExamSubmitVO;
import com.ycl.jxkg.domain.vo.StartExamVO;
import com.ycl.jxkg.service.ExamService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -48,7 +49,7 @@
     * @return
     */
    @PostMapping("/submit")
    public Result examSubmit(@RequestBody @Validated ExamSubmitVO submitData) {
    public Result examSubmit(@RequestBody @Validated StartExamVO submitData) {
        return examService.examSubmit(submitData);
    }
@@ -59,7 +60,7 @@
     * @return
     */
    @PostMapping("/timing")
    public Result timingExamSubmit(@RequestBody @Validated ExamSubmitVO submitData) {
    public Result timingExamSubmit(@RequestBody @Validated StartExamVO submitData) {
        return examService.timingSubmit(submitData);
    }
src/main/java/com/ycl/jxkg/domain/vo/StartExamVO.java
@@ -15,6 +15,9 @@
    private Integer id;
    /** 考试时间 */
    private Integer doTime;
    /** 考试名称 */
    private String examName;
src/main/java/com/ycl/jxkg/service/ExamService.java
@@ -8,6 +8,7 @@
import com.ycl.jxkg.domain.form.ForceSubmitForm;
import com.ycl.jxkg.domain.query.ExamQuery;
import com.ycl.jxkg.domain.vo.ExamSubmitVO;
import com.ycl.jxkg.domain.vo.StartExamVO;
import java.util.List;
@@ -73,7 +74,7 @@
     * @param submitData
     * @return
     */
    Result examSubmit(ExamSubmitVO submitData);
    Result examSubmit(StartExamVO submitData);
    /**
     * 定时保存试卷,防止考试崩溃
@@ -81,7 +82,7 @@
     * @param submitData
     * @return
     */
    Result timingSubmit(ExamSubmitVO submitData);
    Result timingSubmit(StartExamVO submitData);
    /**
     * 获取阅卷信息
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -295,9 +295,9 @@
     * @return
     */
    @Override
    public Result examSubmit(ExamSubmitVO submitData) {
    public Result examSubmit(StartExamVO submitData) {
        // 校验
        Exam exam = examMapper.selectById(submitData.getExamId());
        Exam exam = examMapper.selectById(submitData.getId());
        if (Objects.isNull(exam)) {
            throw new RuntimeException("该考试不存在");
        }
@@ -340,7 +340,7 @@
     * @return
     */
    @Override
    public Result timingSubmit(ExamSubmitVO submitData) {
    public Result timingSubmit(StartExamVO submitData) {
        saveTempExam(submitData, ExamSubmitTempStatusEnum.TEMP);
        return Result.ok();
    }
@@ -351,9 +351,9 @@
     * @param submitData  前端传递的试卷数据
     * @param status  试卷的状态
     */
    public void saveTempExam(ExamSubmitVO submitData, ExamSubmitTempStatusEnum status) {
    public void saveTempExam(StartExamVO submitData, ExamSubmitTempStatusEnum status) {
        ExamSubmitTemp one = new LambdaQueryChainWrapper<>(examSubmitTempMapper)
                .eq(ExamSubmitTemp::getExamId, submitData.getExamId())
                .eq(ExamSubmitTemp::getExamId, submitData.getId())
                .eq(ExamSubmitTemp::getUserId, webContext.getCurrentUser().getId())
                .one();
        if (Objects.nonNull(one)) {
@@ -361,17 +361,17 @@
                return;
            }
            one.setDoTime(submitData.getDoTime());
            one.setExamSubmit(JSON.toJSONString(submitData.getPaperQuestionList()));
            one.setExamSubmit(JSON.toJSONString(submitData.getTitleList()));
            one.setCreateTime(new Date());
            one.setStatus(status);
            examSubmitTempMapper.updateById(one);
        } else {
            ExamSubmitTemp examSubmitTemp = new ExamSubmitTemp();
            examSubmitTemp.setExamId(submitData.getExamId());
            examSubmitTemp.setExamId(submitData.getId());
            examSubmitTemp.setDoTime(submitData.getDoTime());
            examSubmitTemp.setStatus(status);
            examSubmitTemp.setUserId(webContext.getCurrentUser().getId());
            examSubmitTemp.setExamSubmit(JSON.toJSONString(submitData.getPaperQuestionList()));
            examSubmitTemp.setExamSubmit(JSON.toJSONString(submitData.getTitleList()));
            examSubmitTemp.setMarkPaperStatus(ExamSubmitTempStatusEnum.TEMP);
            examSubmitTempMapper.insert(examSubmitTemp);
        }