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 f6cb000..d3c3405 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 @@ -6,6 +6,7 @@ import cn.teammodel.config.exception.ServiceException; import cn.teammodel.controller.admin.service.TeacherService; import cn.teammodel.model.dto.admin.teacher.GpTeacherDto; import cn.teammodel.model.dto.admin.teacher.TeacherDto; +import cn.teammodel.model.entity.User; import cn.teammodel.model.entity.common.GroupList; import cn.teammodel.model.entity.school.*; import cn.teammodel.model.entity.teacher.HonorInfo; @@ -13,6 +14,7 @@ import cn.teammodel.model.vo.admin.GpTeacherVo; import cn.teammodel.model.vo.admin.SugVo; import cn.teammodel.model.vo.admin.TeacherGradeVo; import cn.teammodel.repository.*; +import cn.teammodel.security.utils.SecurityUtil; import cn.teammodel.test.LessonRecordQueryService; import cn.teammodel.utils.GroupUtil; import cn.teammodel.utils.SchoolDateUtil; @@ -746,6 +748,8 @@ public class TeacherServiceImpl implements TeacherService { List sugVoList = getSugVos(teacherDto, request); //获取教师年级分配情况 Map Map = getTeacherGradeCount(teacherDto, request); + User loginUser = SecurityUtil.getLoginUser(); + String loginId = loginUser.getId(); List gradeList = new ArrayList<>(); for (Map.Entry entry : Map.entrySet()) { if(entry.getKey().equals("teacher")) { @@ -831,7 +835,7 @@ public class TeacherServiceImpl implements TeacherService { }else if(teacherDto.getGrade() != null) { //查询学校试卷 备注:若是后面影响速度,可以优化改代码 - int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode()), teacherDto.getGrade()); + int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode()), loginId,teacherDto.getGrade(),"school",teacherDto.getPeriodId()); List teachers = new ArrayList<>(); for (TeacherGradeVo gradeVo : gradeList) { for(TeacherGradeVo.IdAndName gradeId : gradeVo.getGrade()) { @@ -879,7 +883,7 @@ public class TeacherServiceImpl implements TeacherService { return mapTeach; }else { //查询学校试卷 备注:若是后面影响速度,可以优化改代码 - int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode()),null); + int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode()),loginId,null,"school",teacherDto.getPeriodId()); LinkedHashMap mapTeach = new LinkedHashMap<>(); int[] scores = new int[10]; for (SugVo sugVo : sugVoList) { diff --git a/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java b/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java index 4e7fc47..f146b47 100644 --- a/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java +++ b/src/main/java/cn/teammodel/repository/PaperSchoolRepository.java @@ -9,6 +9,9 @@ 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 " + - "and (IS_NULL(@grade) OR ARRAY_CONTAINS(c.gradeIds, @grade))") - int getPaperCount(String code, String grade); + "and ((IS_DEFINED(c.secret) = false or c.secret=0 ) or (c.secret=1 and c.creatorId=@id )) " + + "and (IS_NULL(@grade) OR ARRAY_CONTAINS(c.gradeIds, @grade)) " + + "and c.scope = @scope " + + "and c.periodId = @periodId " ) + int getPaperCount(String code, String id,String grade,String scope,String periodId); }