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); }