From 4adad521e6464025402639d0c2f7602610d15a67 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 07 十一月 2024 09:21:43 +0800 Subject: [PATCH] 错题展示 --- src/main/java/com/ycl/jxkg/service/WrongService.java | 13 ++++ src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java | 5 + src/main/resources/mapper/ExamPaperScoreMapper.xml | 6 ++ src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java | 17 +++++ src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java | 2 src/main/java/com/ycl/jxkg/controller/student/WrongController.java | 27 +++++++++ src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java | 70 +++++++++++++++++++++++ 7 files changed, 140 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/student/WrongController.java b/src/main/java/com/ycl/jxkg/controller/student/WrongController.java new file mode 100644 index 0000000..ed731e6 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/controller/student/WrongController.java @@ -0,0 +1,27 @@ +package com.ycl.jxkg.controller.student; + +import com.ycl.jxkg.base.BaseApiController; +import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.domain.vo.DoQuestionVO; +import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo; +import com.ycl.jxkg.service.WrongService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RequiredArgsConstructor +@RestController +@RequestMapping("/api/student/wrong") +public class WrongController extends BaseApiController { + private final WrongService wrongService; + + @PostMapping("/page") + public Result<List<DoQuestionVO>> page(@RequestBody WrongRequestVo model) { + model.setUserId(getCurrentUser().getId()); + return Result.ok(wrongService.page(model)); + } +} diff --git a/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java b/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java index 134e69d..d119e5b 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java +++ b/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java @@ -48,4 +48,9 @@ private Integer itemOrder; /** 棰樼洰閫夐」 */ private List<QuestionItemObject> questionItemList; + + /** 鑰冭瘯id */ + private Integer examId; + /** 鑰冭瘯鍚嶇О */ + private String examName; } diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java new file mode 100644 index 0000000..4b953ed --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java @@ -0,0 +1,17 @@ +package com.ycl.jxkg.domain.vo.student.wrong; + +import com.ycl.jxkg.base.BasePage; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class WrongRequestVo extends BasePage { + private Integer userId; + private String title; + private List<Integer> questionType; +} diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java index 800f5ad..7c84af3 100644 --- a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java +++ b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java @@ -32,4 +32,6 @@ ExamPaperScore getByExamIdUserId(@Param("examId") Integer examId, @Param("userId") Integer userId); List<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model); + + List<ExamPaperScore> selectByUserId(Integer userId); } diff --git a/src/main/java/com/ycl/jxkg/service/WrongService.java b/src/main/java/com/ycl/jxkg/service/WrongService.java new file mode 100644 index 0000000..74d4027 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/service/WrongService.java @@ -0,0 +1,13 @@ +package com.ycl.jxkg.service; + +import com.ycl.jxkg.domain.vo.DoQuestionVO; +import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo; + +import java.util.List; + +public interface WrongService { + /** + * 鍒嗛〉鏉′欢鏌ヨ閿欓 + * */ + List<DoQuestionVO> page(WrongRequestVo wrongRequestVo); +} diff --git a/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java new file mode 100644 index 0000000..aaa7bb6 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java @@ -0,0 +1,70 @@ +package com.ycl.jxkg.service.impl; + +import com.ycl.jxkg.domain.entity.ExamPaperScore; +import com.ycl.jxkg.domain.entity.Question; +import com.ycl.jxkg.domain.vo.DoQuestionVO; +import com.ycl.jxkg.domain.vo.PaperFixQuestionVO; +import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo; +import com.ycl.jxkg.mapper.ExamPaperScoreMapper; +import com.ycl.jxkg.mapper.QuestionMapper; +import com.ycl.jxkg.service.WrongService; +import com.ycl.jxkg.utils.JsonUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +@RequiredArgsConstructor +@Slf4j +public class WrongServiceImpl implements WrongService { + @Autowired + private ExamPaperScoreMapper examPaperScoreMapper; + @Autowired + private QuestionMapper questionMapper; + + + + /** + * 鍒嗛〉鏉′欢鏌ヨ閿欓 + * */ + @Override + public List<DoQuestionVO> page(WrongRequestVo wrongRequestVo) { + // 鏌ヨ璇ョ敤鎴风殑鎵�鏈夐潪闅忔満璇曞嵎鍙婅瘯鍗烽敊棰� +// List<ExamPaperScore> examPaperScores = examPaperScoreMapper +// .selectList(new LambdaQueryChainWrapper<>(ExamPaperScore.class) +// .eq(ExamPaperScore::getUserId,wrongRequestVo.getUserId())); + // 鏌ヨ璇ョ敤鎴风殑鎵�鏈夎�冭瘯 + List<ExamPaperScore> examPaperScores = examPaperScoreMapper.selectByUserId(wrongRequestVo.getUserId()); + List<PaperFixQuestionVO> paperList = new ArrayList<>(); + List<DoQuestionVO> questions = new ArrayList<>(); + // 閬嶅巻鎵�鏈夎�冭瘯鑾峰緱鑰冭瘯璇︽儏 + examPaperScores.stream().forEach(examPaperScore -> { + try{ + // 瑙f瀽json瀛楃涓� + List<PaperFixQuestionVO> paperFixQuestionVOS = JsonUtil.toJsonListObject(examPaperScore.getPaperContent(), PaperFixQuestionVO.class); + paperFixQuestionVOS.stream().forEach(paperFixQuestionVO -> { + List<DoQuestionVO> doQuestionVOS = paperFixQuestionVO.getQuestionList().stream() + .filter(doQuestionVO -> !doQuestionVO.getRight()) + .map(doQuestionVO -> { + // 鏍规嵁id鏌ヨ棰樺共 + Question question = questionMapper.selectById(doQuestionVO.getId()); + doQuestionVO.setExamId(examPaperScore.getExamId()); + doQuestionVO.setExamName(examPaperScore.getExamName()); + doQuestionVO.setTitle(question.getTitle()); + return doQuestionVO; + }) + .collect(Collectors.toList()); + questions.addAll(doQuestionVOS); + }); + }catch (Exception e){ + e.printStackTrace(); + } + }); + return questions; + } +} diff --git a/src/main/resources/mapper/ExamPaperScoreMapper.xml b/src/main/resources/mapper/ExamPaperScoreMapper.xml index a29bf61..1221a14 100644 --- a/src/main/resources/mapper/ExamPaperScoreMapper.xml +++ b/src/main/resources/mapper/ExamPaperScoreMapper.xml @@ -167,4 +167,10 @@ GROUP BY a.id </select> + <select id="selectByUserId" resultType="com.ycl.jxkg.domain.entity.ExamPaperScore"> + SELECT + <include refid="Base_Column_List"/> + from t_exam_paper_score + where user_id = #{userId} + </select> </mapper> -- Gitblit v1.8.0