src/main/java/com/ycl/jxkg/controller/student/WrongController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/WrongService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ExamPaperScoreMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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)); } src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java
New file @@ -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; } 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; } src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java
New file @@ -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; } 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); } 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); } 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; } } 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>