luohairen
2024-11-11 10dfef66b7e8dc213123233ce35056a4ed5e4cba
错题本分页
6个文件已修改
2个文件已添加
105 ■■■■ 已修改文件
src/main/java/com/ycl/jxkg/controller/student/WrongController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/WrongService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperScoreMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | 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>