From 502c83667afde868c31327d88c5dc3f36bef10f5 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Mon, 24 Aug 2026 15:18:41 +0800 Subject: [PATCH] user paper exam --- .../mapper/PaperExamQuestionUserMapper.java | 9 +++++++++ .../cedu/model/vo/PaperExamQuestionStatVO.java | 17 +++++++++++++++++ .../cedu/service/impl/PaperExamServiceImpl.java | 13 +++++-------- .../mapper/PaperExamQuestionUserMapper.xml | 8 ++++++++ 4 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 safety-cedu-service/src/main/java/org/qinan/cedu/model/vo/PaperExamQuestionStatVO.java diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/mapper/PaperExamQuestionUserMapper.java b/safety-cedu-service/src/main/java/org/qinan/cedu/mapper/PaperExamQuestionUserMapper.java index 1c44ebd1..64f784d5 100644 --- a/safety-cedu-service/src/main/java/org/qinan/cedu/mapper/PaperExamQuestionUserMapper.java +++ b/safety-cedu-service/src/main/java/org/qinan/cedu/mapper/PaperExamQuestionUserMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.qinan.cedu.model.entity.PaperExamQuestionUserDO; +import org.qinan.cedu.model.vo.PaperExamQuestionStatVO; import java.math.BigDecimal; @@ -20,4 +21,12 @@ public interface PaperExamQuestionUserMapper extends BaseMapper() - .eq(PaperExamQuestionUserDO::getPaperExamId, paperExam.getId()) - .eq(PaperExamQuestionUserDO::getDeleteEnum, DeleteEnum.FALSE.getCode())); - long correct = paperExamQuestionUserService.count(new LambdaQueryWrapper() - .eq(PaperExamQuestionUserDO::getPaperExamId, paperExam.getId()) - .eq(PaperExamQuestionUserDO::getDeleteEnum, DeleteEnum.FALSE.getCode()) - .eq(PaperExamQuestionUserDO::getRightStatus, BooleanQAEnum.TRUE.getValue())); + // 一条统计SQL取总题数与答对题数,错误题数=总题数-答对题数(未作答按错误计),正确率=答对/总数*100 + PaperExamQuestionStatVO stat = paperExamQuestionUserMapper.countTotalAndCorrect(paperExam.getId()); + long total = stat.getTotal(); + long correct = stat.getCorrect(); examRecord.setScore(examScore); examRecord.setPassed(paperExam.getPassed()); examRecord.setWrongCount((int) (total - correct)); diff --git a/safety-cedu-service/src/main/resources/mapper/PaperExamQuestionUserMapper.xml b/safety-cedu-service/src/main/resources/mapper/PaperExamQuestionUserMapper.xml index b1001894..9fee7514 100644 --- a/safety-cedu-service/src/main/resources/mapper/PaperExamQuestionUserMapper.xml +++ b/safety-cedu-service/src/main/resources/mapper/PaperExamQuestionUserMapper.xml @@ -8,4 +8,12 @@ WHERE paper_exam_id = #{paperExamId} AND delete_enum = 'false' + +