From f18c0b3336a10bc36a9e5ca34a03b6d19c34569b Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期二, 12 十一月 2024 22:43:01 +0800 Subject: [PATCH] 优化错题详情 --- src/main/resources/mapper/QuestionAnswerRecordMapper.xml | 6 ++++-- src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java | 3 ++- src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java | 36 ++++++++++++++++++++++++++++-------- src/main/java/com/ycl/jxkg/domain/vo/student/wrong/CheckWrongVO.java | 14 ++++++++++++++ 4 files changed, 48 insertions(+), 11 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 4e35021..7b5b307 100644 --- a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java +++ b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java @@ -1,6 +1,7 @@ package com.ycl.jxkg.controller.student; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.github.pagehelper.PageInfo; import com.ycl.jxkg.base.BaseApiController; import com.ycl.jxkg.base.Result; @@ -14,6 +15,8 @@ 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.domain.vo.student.wrong.CheckWrongVO; +import com.ycl.jxkg.mapper.ExamPaperScoreMapper; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.ExamPaperService; import com.ycl.jxkg.service.SubjectService; @@ -27,6 +30,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; @RequiredArgsConstructor @RestController("StudentExamPaperAnswerController") @@ -38,6 +42,7 @@ private final ExamPaperService examPaperService; private final SubjectService subjectService; private final ApplicationEventPublisher eventPublisher; + private final ExamPaperScoreMapper examPaperScoreMapper; @RequestMapping(value = "/pageList", method = RequestMethod.POST) @@ -104,8 +109,12 @@ @RequestMapping(value = "/checkWrong", method = RequestMethod.POST) - public Result<ExamPaperScoreVO> checkWrong(@RequestBody @Valid DoQuestionVO model) { - ExamPaperScore examPaperScore = examPaperScoreService.getById(model.getId()); + public Result<ExamPaperScoreVO> checkWrong(@RequestBody @Valid CheckWrongVO model) { + ExamPaperScore info = new LambdaQueryChainWrapper<>(examPaperScoreMapper) + .eq(ExamPaperScore::getExamId, model.getExamId()) + .eq(ExamPaperScore::getUserId, getCurrentUser().getId()) + .one(); + ExamPaperScore examPaperScore = examPaperScoreService.getById(info.getId()); ExamPaperScoreVO examPaperScoreVO = new ExamPaperScoreVO(); BeanUtils.copyProperties(examPaperScore, examPaperScoreVO); User user = userService.getById(examPaperScore.getUserId()); @@ -113,14 +122,25 @@ 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<>(); + List<PaperFixQuestionVO> collect = JSON.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class).stream() + .filter(item -> item.getQuestionType() == model.getQuestionType()) + .collect(Collectors.toList()); + List<DoQuestionVO> doQuestionVOS = new ArrayList<>(); + + collect.stream().forEach(item -> { + item.getQuestionList().stream().forEach(question -> { + if (question.getId() == model.getQuestionId()) { + doQuestionVOS.add(question); + } + }); + }); + collect.stream().forEach(item -> { + item.setQuestionList(doQuestionVOS); + }); + PaperFixQuestionVO paperFixQuestionVO = new PaperFixQuestionVO(); paperFixQuestionVO.setQuestionType(model.getQuestionType()); - list.add(model); - paperFixQuestionVO.setQuestionList(list); - titleItems.add(paperFixQuestionVO); - examPaperScoreVO.setTitleItems(titleItems); + examPaperScoreVO.setTitleItems(collect); return Result.ok(examPaperScoreVO); } diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/CheckWrongVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/CheckWrongVO.java new file mode 100644 index 0000000..2225415 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/CheckWrongVO.java @@ -0,0 +1,14 @@ +package com.ycl.jxkg.domain.vo.student.wrong; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CheckWrongVO { + private Integer examId; + private Integer questionType; + private Integer questionId; +} diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java index e145d06..53aa91a 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java +++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java @@ -15,7 +15,8 @@ @AllArgsConstructor @NoArgsConstructor public class WrongResponseVO { - private Integer paperId; + private Integer examId; + private Integer questionId; private String title; private Integer questionType; private BigDecimal score; diff --git a/src/main/resources/mapper/QuestionAnswerRecordMapper.xml b/src/main/resources/mapper/QuestionAnswerRecordMapper.xml index 578eba4..a40b668 100644 --- a/src/main/resources/mapper/QuestionAnswerRecordMapper.xml +++ b/src/main/resources/mapper/QuestionAnswerRecordMapper.xml @@ -14,7 +14,8 @@ </resultMap> <resultMap id="WrongResultMap" type="com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO"> - <result property="paperId" column="paper_id" /> + <result property="examId" column="exam_id" /> + <result property="questionId" column="question_id" /> <result property="title" column="title" /> <result property="questionType" column="question_type" /> <result property="difficult" column="difficult" /> @@ -25,7 +26,8 @@ <select id="selectWrongQuestion" resultMap="WrongResultMap"> SELECT - qar.paper_id, + e.id AS exam_id, + q.id AS question_id, q.title, q.question_type, q.difficult, -- Gitblit v1.8.0