src/main/java/com/ycl/jxkg/domain/entity/QuestionAnswerRecord.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/mapper/QuestionAnswerRecordMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/QuestionAnswerRecordMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>