From 75659eedce8990f162e13b5a8c9c1adacde7eb09 Mon Sep 17 00:00:00 2001 From: "hhb@hotmail.com" Date: Fri, 18 Apr 2025 16:39:24 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BF=AE=E5=A4=8D=E5=B9=B4=E7=BA=A7?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=AF=95=E5=8D=B7=E4=B8=8D=E5=8F=98=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TeacherServiceImpl.java | 39 +++++++++++++++++-- .../repository/PaperSchoolRepository.java | 5 ++- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java index a347eb6..f6cb000 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java @@ -829,9 +829,9 @@ public class TeacherServiceImpl implements TeacherService { } return mapTeach; - }else if(teacherDto.getGradeName() != null) { + }else if(teacherDto.getGrade() != null) { //查询学校试卷 备注:若是后面影响速度,可以优化改代码 - int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode())); + int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode()), teacherDto.getGrade()); List teachers = new ArrayList<>(); for (TeacherGradeVo gradeVo : gradeList) { for(TeacherGradeVo.IdAndName gradeId : gradeVo.getGrade()) { @@ -879,7 +879,7 @@ public class TeacherServiceImpl implements TeacherService { return mapTeach; }else { //查询学校试卷 备注:若是后面影响速度,可以优化改代码 - int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode())); + int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode()),null); LinkedHashMap mapTeach = new LinkedHashMap<>(); int[] scores = new int[10]; for (SugVo sugVo : sugVoList) { @@ -1100,6 +1100,39 @@ public class TeacherServiceImpl implements TeacherService { gpTeacherDto.setIds(tmdIds); } + /*if (!StringUtils.isNotEmpty(teacherDto.getGrade()) && StringUtils.isNotEmpty(teacherDto.getTmdId())) { + //获取该tmdId下的年级信息 + Map gradeMap = getTeacherGradeCount(teacherDto,request); + List> teachers = (List>) gradeMap.get("teacher"); + List> grades = teachers.stream() + .filter(teacher -> teacher.get("tmdId").equals(teacherDto.getTmdId())) + .findFirst() + .map(teacher -> (List>) teacher.get("grade")) + .orElse(new ArrayList<>()); + //在根据当前tmdId获取的年级信息去筛选其他同属一个年级下的tmdId + List tmdIds = new ArrayList<>(); + for (Map grade : grades) { + String gradeCode = (String) grade.get("grade"); + tmdIds = teachers.stream() + .filter(teacher -> { + Object gradeObj = teacher.get("grade"); + if (!(gradeObj instanceof List)) { + return false; + } + List> gradeList = (List>) gradeObj; + return gradeList.stream() + .anyMatch(gradeItem -> + gradeCode.equals(gradeItem.get("grade")) + ); + }) + .map(teacher -> (String) teacher.get("tmdId")) + .collect(Collectors.toList()); + + } + gpTeacherDto.setOwnerIds(tmdIds); + gpTeacherDto.setIds(tmdIds); + }*/ + Map honor = getTeacherHonors(gpTeacherDto, request); List honors = new ArrayList<>(); diff --git a/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java b/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java index b5ba146..4e7fc47 100644 --- a/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java +++ b/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Repository; @Repository public interface PaperSchoolRepository extends CosmosRepository { - @Query("select value count(1) from c where c.pk='Paper' and c.code= @code") - int getPaperCount(String code); + @Query("select value count(1) from c where c.pk='Paper' and c.code= @code " + + "and (IS_NULL(@grade) OR ARRAY_CONTAINS(c.gradeIds, @grade))") + int getPaperCount(String code, String grade); }