update 修复年级查询试卷不变的问题

develop
hhb@hotmail.com 2 months ago
parent 9b4a5a668a
commit 75659eedce

@ -829,9 +829,9 @@ public class TeacherServiceImpl implements TeacherService {
} }
return mapTeach; 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<String> teachers = new ArrayList<>(); List<String> teachers = new ArrayList<>();
for (TeacherGradeVo gradeVo : gradeList) { for (TeacherGradeVo gradeVo : gradeList) {
for(TeacherGradeVo.IdAndName gradeId : gradeVo.getGrade()) { for(TeacherGradeVo.IdAndName gradeId : gradeVo.getGrade()) {
@ -879,7 +879,7 @@ public class TeacherServiceImpl implements TeacherService {
return mapTeach; return mapTeach;
}else { }else {
//查询学校试卷 备注:若是后面影响速度,可以优化改代码 //查询学校试卷 备注:若是后面影响速度,可以优化改代码
int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode())); int count = paperSchoolRepository.getPaperCount(String.format(paperCode, teacherDto.getCode()),null);
LinkedHashMap<String, Object> mapTeach = new LinkedHashMap<>(); LinkedHashMap<String, Object> mapTeach = new LinkedHashMap<>();
int[] scores = new int[10]; int[] scores = new int[10];
for (SugVo sugVo : sugVoList) { for (SugVo sugVo : sugVoList) {
@ -1100,6 +1100,39 @@ public class TeacherServiceImpl implements TeacherService {
gpTeacherDto.setIds(tmdIds); gpTeacherDto.setIds(tmdIds);
} }
/*if (!StringUtils.isNotEmpty(teacherDto.getGrade()) && StringUtils.isNotEmpty(teacherDto.getTmdId())) {
//获取该tmdId下的年级信息
Map<String, Object> gradeMap = getTeacherGradeCount(teacherDto,request);
List<Map<String, Object>> teachers = (List<Map<String, Object>>) gradeMap.get("teacher");
List<Map<String, Object>> grades = teachers.stream()
.filter(teacher -> teacher.get("tmdId").equals(teacherDto.getTmdId()))
.findFirst()
.map(teacher -> (List<Map<String, Object>>) teacher.get("grade"))
.orElse(new ArrayList<>());
//在根据当前tmdId获取的年级信息去筛选其他同属一个年级下的tmdId
List<String> tmdIds = new ArrayList<>();
for (Map<String, Object> 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<Map<String, Object>> gradeList = (List<Map<String, Object>>) 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<String, Object> honor = getTeacherHonors(gpTeacherDto, request); Map<String, Object> honor = getTeacherHonors(gpTeacherDto, request);
List<HonorInfo> honors = new ArrayList<>(); List<HonorInfo> honors = new ArrayList<>();

@ -8,6 +8,7 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface PaperSchoolRepository extends CosmosRepository<PaperSchool, String> { public interface PaperSchoolRepository extends CosmosRepository<PaperSchool, String> {
@Query("select value count(1) from c where c.pk='Paper' and c.code= @code") @Query("select value count(1) from c where c.pk='Paper' and c.code= @code " +
int getPaperCount(String code); "and (IS_NULL(@grade) OR ARRAY_CONTAINS(c.gradeIds, @grade))")
int getPaperCount(String code, String grade);
} }

Loading…
Cancel
Save