Просмотр исходного кода

班级考勤,班主任只能查看本班的

dzx 1 год назад
Родитель
Сommit
c4b89e514a

+ 14 - 1
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.attendance.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -75,11 +76,23 @@ public class StudentStatisticsController {
     private final IBaseClassService classService;
     private final IHolidayDateService holidayDateService;
     private final IAttendanceRuleCategoryService ruleCategoryService;
-
+    private final IBaseClassService baseClassService;
     @GetMapping(value = "/class-statistics")
     @ApiOperation(value="班级考勤统计")
     @SaCheckPermission("statistics:detail")
     public RT<PageOutput<ClassStatisticsVo>> classStatistics(@Valid AttendanceStatisticDto dto){
+
+        List<String> roleList = StpUtil.getRoleList();
+        long teacherId = StpUtil.getLoginIdAsLong();
+        List<BaseClass> classList = baseClassService.list(
+                new QueryWrapper<BaseClass>().lambda().eq(BaseClass::getTeacherId, teacherId)
+        );
+        if(roleList.size() == 2 && roleList.contains("CLASSTE") && roleList.contains("TEACHER")){
+            if(classList != null && !classList.isEmpty()){
+                dto.setClassId(classList.get(0).getId());
+            }
+        }
+        
         Page<ClassStatisticsVo> attendancePage = classService.getAttendancePage(new Page<>(dto.getLimit(), dto.getSize()), dto);
         List<Long> classIds = new ArrayList<>();
         for (ClassStatisticsVo record : attendancePage.getRecords()) {