From 10dfef66b7e8dc213123233ce35056a4ed5e4cba Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期一, 11 十一月 2024 15:33:32 +0800 Subject: [PATCH] 错题本分页 --- src/main/java/com/ycl/jxkg/service/WrongService.java | 7 ++- src/main/resources/mapper/ExamPaperScoreMapper.xml | 3 + src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java | 18 +++++++++ src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java | 18 +++++++++ src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java | 5 ++ src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java | 4 ++ src/main/java/com/ycl/jxkg/controller/student/WrongController.java | 3 + src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java | 47 +++++++++++++++++++---- 8 files changed, 92 insertions(+), 13 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 index ed731e6..be66077 100644 --- a/src/main/java/com/ycl/jxkg/controller/student/WrongController.java +++ b/src/main/java/com/ycl/jxkg/controller/student/WrongController.java @@ -4,6 +4,7 @@ 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.domain.vo.student.wrong.WrongResponseVO; import com.ycl.jxkg.service.WrongService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; @@ -20,7 +21,7 @@ private final WrongService wrongService; @PostMapping("/page") - public Result<List<DoQuestionVO>> page(@RequestBody WrongRequestVo model) { + public Result<WrongResponseVO> 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/student/wrong/WrongPageVo.java b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java new file mode 100644 index 0000000..597ebf2 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java @@ -0,0 +1,18 @@ +package com.ycl.jxkg.domain.vo.student.wrong; + +import com.ycl.jxkg.domain.vo.DoQuestionVO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class WrongPageVo { + private List<DoQuestionVO> list; + private int pageIndex; + private int pageSize; + private long total; +} 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 index 4b953ed..c3c5755 100644 --- 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 @@ -13,5 +13,8 @@ public class WrongRequestVo extends BasePage { private Integer userId; private String title; - private List<Integer> questionType; + private Integer questionType; + private String examName; + private Integer pageIndex; + private Integer pageSize; } 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 new file mode 100644 index 0000000..dfb1017 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java @@ -0,0 +1,18 @@ +package com.ycl.jxkg.domain.vo.student.wrong; + +import com.ycl.jxkg.domain.vo.DoQuestionVO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class WrongResponseVO { + private List<DoQuestionVO> list; + private Integer pageIndex; + private Integer pageSize; + private Integer total; +} diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java index 7c84af3..a07832c 100644 --- a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java +++ b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java @@ -8,6 +8,8 @@ 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.exampaper.UserAnswerPageResponseVO; +import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo; +import com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -34,4 +36,6 @@ List<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model); List<ExamPaperScore> selectByUserId(Integer userId); + + List<WrongResponseVO> selectWrong(WrongRequestVo wrongRequestVo); } diff --git a/src/main/java/com/ycl/jxkg/service/WrongService.java b/src/main/java/com/ycl/jxkg/service/WrongService.java index 74d4027..d9c79f8 100644 --- a/src/main/java/com/ycl/jxkg/service/WrongService.java +++ b/src/main/java/com/ycl/jxkg/service/WrongService.java @@ -1,13 +1,16 @@ package com.ycl.jxkg.service; import com.ycl.jxkg.domain.vo.DoQuestionVO; +import com.ycl.jxkg.domain.vo.student.wrong.WrongPageVo; import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo; +import com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO; import java.util.List; public interface WrongService { /** - * 鍒嗛〉鏉′欢鏌ヨ閿欓 + * 鏉′欢鏌ヨ閿欓 * */ - List<DoQuestionVO> page(WrongRequestVo wrongRequestVo); + WrongResponseVO 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 index aaa7bb6..cedbbb1 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java @@ -1,10 +1,13 @@ package com.ycl.jxkg.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.WrongPageVo; import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo; +import com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO; import com.ycl.jxkg.mapper.ExamPaperScoreMapper; import com.ycl.jxkg.mapper.QuestionMapper; import com.ycl.jxkg.service.WrongService; @@ -30,17 +33,13 @@ /** - * 鍒嗛〉鏉′欢鏌ヨ閿欓 + * 鏉′欢鏌ヨ閿欓 * */ @Override - public List<DoQuestionVO> page(WrongRequestVo wrongRequestVo) { - // 鏌ヨ璇ョ敤鎴风殑鎵�鏈夐潪闅忔満璇曞嵎鍙婅瘯鍗烽敊棰� -// List<ExamPaperScore> examPaperScores = examPaperScoreMapper -// .selectList(new LambdaQueryChainWrapper<>(ExamPaperScore.class) -// .eq(ExamPaperScore::getUserId,wrongRequestVo.getUserId())); + public WrongResponseVO page(WrongRequestVo wrongRequestVo) { + WrongResponseVO wrongResponseVO = new WrongResponseVO(); // 鏌ヨ璇ョ敤鎴风殑鎵�鏈夎�冭瘯 List<ExamPaperScore> examPaperScores = examPaperScoreMapper.selectByUserId(wrongRequestVo.getUserId()); - List<PaperFixQuestionVO> paperList = new ArrayList<>(); List<DoQuestionVO> questions = new ArrayList<>(); // 閬嶅巻鎵�鏈夎�冭瘯鑾峰緱鑰冭瘯璇︽儏 examPaperScores.stream().forEach(examPaperScore -> { @@ -52,7 +51,8 @@ .filter(doQuestionVO -> !doQuestionVO.getRight()) .map(doQuestionVO -> { // 鏍规嵁id鏌ヨ棰樺共 - Question question = questionMapper.selectById(doQuestionVO.getId()); + Question question = questionMapper.selectOne(new LambdaQueryWrapper<>(Question.class).eq(Question::getId, doQuestionVO.getId())); +// Question question = questionMapper.selectById(doQuestionVO.getId()); doQuestionVO.setExamId(examPaperScore.getExamId()); doQuestionVO.setExamName(examPaperScore.getExamName()); doQuestionVO.setTitle(question.getTitle()); @@ -65,6 +65,35 @@ e.printStackTrace(); } }); - return questions; + // 鏉′欢鏌ヨ + // 瀵归泦鍚堜腑鐨勯鐩繘琛屾ā绯婃煡璇㈣繃婊� + List<DoQuestionVO> doQuestionVOS = questions.stream() + // 鏍囬涓嶄负绌烘垨绌哄瓧绗︿覆锛屾ā绯婃煡璇� + .filter(question -> { + if (wrongRequestVo.getTitle() == null || wrongRequestVo.getTitle().trim().equals("")) { + return true; + } + return question.getTitle().toLowerCase().contains(wrongRequestVo.getTitle().toLowerCase()); + }) + .filter(question -> { + if (wrongRequestVo.getQuestionType() == null) { + return true; + } + return question.getQuestionType().equals(wrongRequestVo.getQuestionType()); + }) + .filter(question -> { + if (wrongRequestVo.getExamName() == null || wrongRequestVo.getExamName().trim().equals("")) { + return true; + } + return question.getExamName().toLowerCase().contains(wrongRequestVo.getExamName().toLowerCase()); + }) + .collect(Collectors.toList()); + // 鍒嗛〉 + List<DoQuestionVO> list = doQuestionVOS.stream().skip((wrongRequestVo.getPageIndex() - 1) * wrongRequestVo.getPageSize()).collect(Collectors.toList()); + wrongResponseVO.setList(list); + wrongResponseVO.setTotal(doQuestionVOS.size()); + wrongResponseVO.setPageSize(wrongRequestVo.getPageSize()); + wrongResponseVO.setPageIndex(wrongRequestVo.getPageIndex()); + return wrongResponseVO; } } diff --git a/src/main/resources/mapper/ExamPaperScoreMapper.xml b/src/main/resources/mapper/ExamPaperScoreMapper.xml index aa5f665..0c5d29f 100644 --- a/src/main/resources/mapper/ExamPaperScoreMapper.xml +++ b/src/main/resources/mapper/ExamPaperScoreMapper.xml @@ -176,4 +176,7 @@ from t_exam_paper_score where user_id = #{userId} </select> + <select id="selectWrong" resultType="com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO"> + + </select> </mapper> -- Gitblit v1.8.0