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