luohairen
2024-11-07 4adad521e6464025402639d0c2f7602610d15a67
错题展示
3个文件已修改
4个文件已添加
140 ■■■■■ 已修改文件
src/main/java/com/ycl/jxkg/controller/student/WrongController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/WrongService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperScoreMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | 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>