From b661bcf7e065092c876e052bad0bfaecb9dc0c17 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期二, 12 十一月 2024 21:21:06 +0800 Subject: [PATCH] 优化错题查询 --- src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java index fe52355..4e35021 100644 --- a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java +++ b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java @@ -1,24 +1,32 @@ package com.ycl.jxkg.controller.student; +import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; import com.ycl.jxkg.base.BaseApiController; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.ExamPaperAnswerInfo; import com.ycl.jxkg.domain.entity.ExamPaperScore; import com.ycl.jxkg.domain.entity.User; -import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO; -import com.ycl.jxkg.domain.vo.student.exam.ExamPaperReadVO; +import com.ycl.jxkg.domain.vo.DoQuestionVO; +import com.ycl.jxkg.domain.vo.PaperFixQuestionVO; +import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperMarkNavbarVO; +import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperScoreVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.ExamPaperService; import com.ycl.jxkg.service.SubjectService; +import com.ycl.jxkg.service.UserService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.context.ApplicationEventPublisher; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; @RequiredArgsConstructor @RestController("StudentExamPaperAnswerController") @@ -26,6 +34,7 @@ public class ExamPaperAnswerController extends BaseApiController { private final ExamPaperScoreService examPaperScoreService; + private final UserService userService; private final ExamPaperService examPaperService; private final SubjectService subjectService; private final ApplicationEventPublisher eventPublisher; @@ -82,15 +91,37 @@ } @RequestMapping(value = "/read/{id}", method = RequestMethod.POST) - public Result<ExamPaperReadVO> read(@PathVariable Integer id) { + public Result<ExamPaperScoreVO> read(@PathVariable Integer id) { ExamPaperScore examPaperScore = examPaperScoreService.getById(id); - ExamPaperReadVO vm = new ExamPaperReadVO(); - ExamPaperEditRequestVO paper = examPaperService.examPaperToVM(examPaperScore.getPaperId()); - ExamPaperSubmitVO answer = examPaperScoreService.examPaperAnswerToVM(examPaperScore.getId()); - vm.setPaper(paper); - vm.setAnswer(answer); - return Result.ok(vm); + ExamPaperScoreVO examPaperScoreVO = new ExamPaperScoreVO(); + BeanUtils.copyProperties(examPaperScore, examPaperScoreVO); + User user = userService.getById(examPaperScore.getUserId()); + examPaperScoreVO.setUserName(Objects.nonNull(user) ? user.getRealName() : "鐢ㄦ埛宸叉敞閿�"); + examPaperScoreVO.setNavbar(JSON.parseArray(examPaperScore.getNavbar(), ExamPaperMarkNavbarVO.class)); + examPaperScoreVO.setTitleItems(JSON.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class)); + return Result.ok(examPaperScoreVO); } + @RequestMapping(value = "/checkWrong", method = RequestMethod.POST) + public Result<ExamPaperScoreVO> checkWrong(@RequestBody @Valid DoQuestionVO model) { + ExamPaperScore examPaperScore = examPaperScoreService.getById(model.getId()); + ExamPaperScoreVO examPaperScoreVO = new ExamPaperScoreVO(); + BeanUtils.copyProperties(examPaperScore, examPaperScoreVO); + User user = userService.getById(examPaperScore.getUserId()); + examPaperScoreVO.setUserName(Objects.nonNull(user) ? user.getRealName() : "鐢ㄦ埛宸叉敞閿�"); + examPaperScoreVO.setNavbar(JSON.parseArray(examPaperScore.getNavbar(), ExamPaperMarkNavbarVO.class)); + examPaperScoreVO.setTitleItems(JSON.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class)); + + List<PaperFixQuestionVO> titleItems = new ArrayList<>(); + List<DoQuestionVO> list = new ArrayList<>(); + PaperFixQuestionVO paperFixQuestionVO = new PaperFixQuestionVO(); + paperFixQuestionVO.setQuestionType(model.getQuestionType()); + list.add(model); + paperFixQuestionVO.setQuestionList(list); + titleItems.add(paperFixQuestionVO); + examPaperScoreVO.setTitleItems(titleItems); + return Result.ok(examPaperScoreVO); + } + } -- Gitblit v1.8.0