From ef403efc68d1cdc6a7fd22bd411aeb698fcd2672 Mon Sep 17 00:00:00 2001 From: xiaoCJ <406612557@qq.com> Date: Wed, 8 May 2024 10:39:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E5=92=8Cmapper=20xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tea/TeaGradeManageController.java | 36 +++++++++++++++---- .../tea/impl/TeaGradeManageServiceImpl.java | 7 ++-- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java index 0368180..0b207c5 100644 --- a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java +++ b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java @@ -148,7 +148,16 @@ public class TeaGradeManageController { @RequestParam(required = false) String classId, @RequestParam(required = false) String examManageId) { List list = getTeaExamAndUserDtos(schoolId, keyWord, classId, examManageId); - list.sort(new TeaGradeManageServiceImpl.StuUserDtoComparator()); //比较器按得分排序 + // 先对列表按照 totalScore 进行降序排序 + list.sort((a, b) -> { + BigDecimal scoreA = Optional.ofNullable(a.getTotalScore()).orElse(BigDecimal.ZERO); + BigDecimal scoreB = Optional.ofNullable(b.getTotalScore()).orElse(BigDecimal.ZERO); + return scoreB.compareTo(scoreA); + }); + // 遍历排序后的列表,给每个对象设置 scoreRank 字段 + for (int i = 0; i < list.size(); i++) { + list.get(i).setScoreRank(i + 1); // 排名从1开始 + } PageInfo pageInfo = PageUtil.pageHelper(list, index, size); return new ResultEntity<>(pageInfo); } @@ -162,7 +171,7 @@ public class TeaGradeManageController { } -// @GetMapping("/exportExam") + // @GetMapping("/exportExam") // @ApiOperation("考试模式--页面单个考试导出") public void exportExam() { //TODO 待写 页面单个考试导出 @@ -315,6 +324,8 @@ public class TeaGradeManageController { StuUserExample.Criteria stuUserCriteria = stuUserExample.createCriteria(); StuUserExample.Criteria stuUserCriteria1 = stuUserExample.createCriteria(); stuUserCriteria.andSchoolIdEqualTo(schoolId); + stuUserCriteria.andRoleIdEqualTo(4); + stuUserCriteria1.andRoleIdEqualTo(4); stuUserCriteria1.andSchoolIdEqualTo(schoolId); List list = new ArrayList(); if (StringUtils.isNotBlank(keyWord)) { @@ -341,11 +352,22 @@ public class TeaGradeManageController { if (StringUtils.isNotBlank(examManageId)) { studentExamCriteria.andExamManageIdEqualTo(examManageId); } - List stuStudentExams = studentExamMapper.selectByExample(studentExamExample); - for (StuStudentExam stuStudentExam : stuStudentExams) { - teaExamAndUserDto.setObjectiveScore(stuStudentExam.getObjectiveScore()); - teaExamAndUserDto.setCaseScore(stuStudentExam.getCaseScore()); - teaExamAndUserDto.setTotalScore(stuStudentExam.getTotalScore()); + StuStudentExamExample example = new StuStudentExamExample(); + example.createCriteria().andUseridEqualTo(userid).andExamManageIdEqualTo(examManageId); + List stuStudentExams = studentExamMapper.selectByExampleWithBLOBs(example); + if (!stuStudentExams.isEmpty()) { + StuStudentExamWithBLOBs stuStudentExam = stuStudentExams.get(0); + if (stuStudentExam != null) { + if (stuStudentExam.getObjectiveScore() != null) { + teaExamAndUserDto.setObjectiveScore(stuStudentExam.getObjectiveScore()); + } + if (stuStudentExam.getCaseScore() != null) { + teaExamAndUserDto.setCaseScore(stuStudentExam.getCaseScore()); + } + if (stuStudentExam.getTotalScore() != null) { + teaExamAndUserDto.setTotalScore(stuStudentExam.getTotalScore()); + } + } } list.add(teaExamAndUserDto); } diff --git a/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java b/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java index 15a29db..e43ae66 100644 --- a/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java +++ b/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java @@ -51,6 +51,7 @@ public class TeaGradeManageServiceImpl implements ITeaGradeManageService { @Override public PageInfo getTrainingInfo(Integer index, Integer size, String schoolId, String keyWord, String classId, String userId) { List list = getTeaTrainingInfoDTOS(schoolId, keyWord, classId, userId); + assert list != null; list.sort(new TotalScoreComparator()); int i = 0; for (TeaTrainingInfoDTO teaTrainingInfoDTO : list) { @@ -362,8 +363,10 @@ public class TeaGradeManageServiceImpl implements ITeaGradeManageService { //封装参数 BigDecimal chapterNum = sysCourseChapterMapper.selectChapterBySchoolId(schoolId); if (totalScore.intValue() != 0) { - BigDecimal score = totalScore.divide(chapterNum,2,RoundingMode.HALF_UP);//已完成的模块分数/总模块数量 + BigDecimal score = totalScore.divide(chapterNum, 2, RoundingMode.HALF_UP);//已完成的模块分数/总模块数量 teaTrainingInfoDTO.setTotalScore(score); + }else { + teaTrainingInfoDTO.setTotalScore(BigDecimal.ZERO); } if (allProgress.intValue() != 0 && stuTrainings.size() != 0) { BigDecimal divide = allProgress.divide(BigDecimal.valueOf(stuTrainings.size()), 2, RoundingMode.HALF_UP); @@ -385,7 +388,7 @@ public class TeaGradeManageServiceImpl implements ITeaGradeManageService { } else if (o2 == null) { return 1; } else { - return Integer.compare(o2.getTotalScore().intValueExact(), o1.getTotalScore().intValueExact()); + return Integer.compare(o2.getTotalScore().intValue(), o1.getTotalScore().intValue()); } } }