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' + +