diff --git a/src/main/java/com/yunhai/acasyllabu/model/syllabus/MyClassVo.java b/src/main/java/com/yunhai/acasyllabu/model/syllabus/MyClassVo.java index ef25c15..50dd53a 100644 --- a/src/main/java/com/yunhai/acasyllabu/model/syllabus/MyClassVo.java +++ b/src/main/java/com/yunhai/acasyllabu/model/syllabus/MyClassVo.java @@ -21,6 +21,9 @@ public class MyClassVo { /** 年级名称 */ private String gradeName; + /** 年级是否启用课表查看(排课情况年级设置;null=未配置视为启用) */ + private Boolean gradeEnabled; + /** 是否班主任(正/副班主任) */ private boolean headTeacher; diff --git a/src/main/java/com/yunhai/acasyllabu/service/impl/TimetableService.java b/src/main/java/com/yunhai/acasyllabu/service/impl/TimetableService.java index 810f012..1b76015 100644 --- a/src/main/java/com/yunhai/acasyllabu/service/impl/TimetableService.java +++ b/src/main/java/com/yunhai/acasyllabu/service/impl/TimetableService.java @@ -1,5 +1,6 @@ package com.yunhai.acasyllabu.service.impl; +import com.yunhai.acasyllabu.entity.GradeSetting; import com.yunhai.acasyllabu.entity.Timetable; import com.yunhai.acasyllabu.entity.TimetableSlot; import com.yunhai.acasyllabu.entity.UpFile; @@ -16,6 +17,7 @@ import com.yunhai.acasyllabu.model.syllabus.TimetableOverviewVo; import com.yunhai.acasyllabu.model.syllabus.TimetableSaveRequest; import com.yunhai.acasyllabu.model.syllabus.TimetableSlotVo; import com.yunhai.acasyllabu.model.syllabus.TimetableVo; +import com.yunhai.acasyllabu.repository.GradeSettingRepository; import com.yunhai.acasyllabu.repository.TimetableRepository; import com.yunhai.acasyllabu.repository.TimetableSlotRepository; import com.yunhai.acasyllabu.repository.UpFileRepository; @@ -98,6 +100,9 @@ public class TimetableService implements ITimetableService { @Autowired private ISettingService settingService; + @Autowired + private GradeSettingRepository gradeSettingRepository; + // ============================ 查询 ============================ @Override @@ -627,7 +632,15 @@ public class TimetableService implements ITimetableService { vo.setSubjects(teachSubjects.getOrDefault(cid, new ArrayList<>())); result.add(vo); } + // 年级启用状态随班级带出(我的课表据此过滤 tab;未配置的年级视为启用) + Map gradeEnabled = new LinkedHashMap<>(); + for (GradeSetting gs : gradeSettingRepository.findBySchIdOrderByIdAsc(schId)) { + gradeEnabled.put(gs.getGradeName(), !Boolean.FALSE.equals(gs.getEnabled())); + } result.sort(Comparator.comparing(v -> order.getOrDefault(v.getClassId(), Integer.MAX_VALUE))); + for (MyClassVo vo : result) { + vo.setGradeEnabled(gradeEnabled.get(vo.getGradeName())); + } log.info("[myClasses] schId={}, userId={}, roleId={}, 范围={}, 班级 {} 个", schId, userId, roleId, admin ? "全部" : student ? "本人班级" : "所带/任教", result.size()); return result;