xiangpei
2024-11-12 318d743292e40a939619cd9425066e10d67cf482
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -80,6 +80,7 @@
    private final UserMapper userMapper;
    private final ExamPaperScoreMapper examPaperScoreMapper;
    private final ExamPaperScoreService examPaperScoreService;
    private final QuestionAnswerRecordMapper questionAnswerRecordMapper;
    private final Producer producer;
@@ -1004,10 +1005,12 @@
        examPaperScore.setTotalScore(new BigDecimal(examPaperMark.getTotalScore()));
        examPaperScore.setJudgeUser(userId);
        examPaperScore.setJudgeTime(new Date());
        if (!StringUtils.isEmpty(examPaperMark.getTitleItems())) {
        if (!org.springframework.util.CollectionUtils.isEmpty(examPaperMark.getTitleItems())) {
            examPaperScore.setPaperContent(JSON.toJSONString(examPaperMark.getTitleItems()));
            // 保存答题记录
            this.saveQuestionAnswerRecord(examPaperMark.getUserId(), examPaperMark.getTitleItems());
        }
        if (!StringUtils.isEmpty(examPaperMark.getNavbar())) {
        if (!org.springframework.util.CollectionUtils.isEmpty(examPaperMark.getNavbar())) {
            examPaperScore.setNavbar(JSON.toJSONString(examPaperMark.getNavbar()));
        }
        long questionCorrect = 0;
@@ -1045,6 +1048,29 @@
        return Result.ok();
    }
    /**
     * 保存答题记录
     *
     * @param titleItems
     */
    private void saveQuestionAnswerRecord(Integer studentUserId, List<PaperFixQuestionVO> titleItems) {
        for (PaperFixQuestionVO titleItem : titleItems) {
            for (DoQuestionVO question : titleItem.getQuestionList()) {
                QuestionAnswerRecord record = new QuestionAnswerRecord();
                record.setQuestionType(titleItem.getQuestionType());
                record.setUserId(studentUserId);
                record.setDoRight(question.getRight());
                record.setExamId(question.getExamId());
                record.setQuestionId(question.getId());
                record.setScore(question.getScore());
                record.setUserAnswer(StringUtils.hasText(question.getAnswer()) ? question.getAnswer() : question.getAnswerList().stream().collect(Collectors.joining("、")));
                questionAnswerRecordMapper.insert(record);
            }
        }
    }
    @Override
    public Result monitorList(ExamQuery query) {