xiangpei
2024-11-12 318d743292e40a939619cd9425066e10d67cf482
答题记录表、阅卷时保存答题记录
1个文件已修改
3个文件已添加
92 ■■■■■ 已修改文件
src/main/java/com/ycl/jxkg/domain/entity/QuestionAnswerRecord.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/QuestionAnswerRecordMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/QuestionAnswerRecordMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/entity/QuestionAnswerRecord.java
New file
@@ -0,0 +1,41 @@
package com.ycl.jxkg.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.jxkg.domain.base.AbsOnlyIdEntity;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author:xp
 * @date:2024/11/12 17:53
 */
@Data
@TableName("t_question_answer_record")
public class QuestionAnswerRecord extends AbsOnlyIdEntity {
    @TableField("exam_id")
    private Integer examId;
    @TableField("user_id")
    private Integer userId;
    @TableField("paper_id")
    private Integer paperId;
    @TableField("question_id")
    private Integer questionId;
    @TableField("do_right")
    private Boolean doRight;
    @TableField("user_answer")
    private String userAnswer;
    @TableField("score")
    private BigDecimal score;
    @TableField("question_type")
    private Integer questionType;
}
src/main/java/com/ycl/jxkg/mapper/QuestionAnswerRecordMapper.java
New file
@@ -0,0 +1,15 @@
package com.ycl.jxkg.mapper;
import com.ycl.jxkg.domain.entity.QuestionAnswerRecord;
import org.apache.ibatis.annotations.Mapper;
/**
 * @author:xp
 * @date:2024/11/12 17:55
 */
@Mapper
public interface QuestionAnswerRecordMapper extends BaseMapper<QuestionAnswerRecord> {
}
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) {
src/main/resources/mapper/QuestionAnswerRecordMapper.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ycl.jxkg.mapper.QuestionAnswerRecordMapper">
</mapper>