From 247cb86585a1d1894596ed18a6c93efecb992946 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 14 十一月 2024 10:34:27 +0800 Subject: [PATCH] 班级成绩图表分析 --- src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 53 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java index 5295872..58608cf 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java @@ -1,16 +1,22 @@ package com.ycl.jxkg.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.ExamPaperAnswerInfo; import com.ycl.jxkg.domain.entity.*; import com.ycl.jxkg.domain.other.KeyValue; +import com.ycl.jxkg.domain.vo.admin.exam.ClassExamScoreInfoVO; +import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperInfoVO; import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; +import com.ycl.jxkg.domain.vo.admin.paper.UserAnswerPageRequestVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; +import com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO; import com.ycl.jxkg.enums.ExamPaperTypeEnum; import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.mapper.ExamPaperMapper; @@ -27,6 +33,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -284,4 +292,49 @@ return PageHelper.startPage(model.getPageIndex(), model.getPageSize()).doSelectPageInfo(() -> examPaperScoreMapper.pageExamPaper(model)); } + + @Override + public PageInfo<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model) { + return PageHelper.startPage(model.getPageIndex(), model.getPageSize()).doSelectPageInfo(() -> + examPaperScoreMapper.pageUser(model)); + } + + + + @Override + public Result<ExamPaperInfoVO> getExamPaperInfo(Integer id) { + ExamPaperInfoVO result = new ExamPaperInfoVO(); + // 鏌ヨ鑰冭瘯淇℃伅 + ExamPaperAnswerPageRequestVO model = new ExamPaperAnswerPageRequestVO(); + model.setExamId(id); + // 鏈�楂樺垎銆佹渶浣庡垎 + ExamPaperScore max = examPaperScoreMapper.selectOne(new LambdaQueryWrapper<>(ExamPaperScore.class) + .eq(ExamPaperScore::getExamId, id) + .orderByDesc(ExamPaperScore::getTotalScore) + .last("limit 1")); + if (null != max) { + result.setHighestScore(max.getTotalScore()); + ExamPaperScore min = examPaperScoreMapper.selectOne(new LambdaQueryWrapper<>(ExamPaperScore.class) + .eq(ExamPaperScore::getExamId, id) + .orderByAsc(ExamPaperScore::getTotalScore) + .last("limit 1")); + // 鍒ゆ柇max鍜宮in鏄惁涓哄悓涓�鏉℃暟鎹� + if (null != min && !max.getId().equals(min.getId())) { + result.setLowestScore(min.getTotalScore()); + }else { + result.setLowestScore(BigDecimal.valueOf(0)); + } + }else { + result.setHighestScore(BigDecimal.valueOf(0)); + result.setLowestScore(BigDecimal.valueOf(0)); + } + // 鏌ヨ鐝骇瀛﹀憳鍚嶇О鍙婅�冭瘯鎴愮哗 + List<ClassExamScoreInfoVO> info = examPaperScoreMapper.getClassExamScoreInfo(id); + result.setTotalUserCount(info.size()); + ClassExamScoreInfoVO classExamScoreInfoVO = info.get(0); + result.setLackUserCount(classExamScoreInfoVO.getLackUserCount()); + result.setUserNames(info.stream().map(item -> item.getRealName()).collect(Collectors.toList())); + result.setUserScores(info.stream().map(item -> item.getTotalScore()).collect(Collectors.toList())); + return Result.ok(result); + } } -- Gitblit v1.8.0