Răsfoiți Sursa

Merge branch 'dev'
111

wangliang 4 ani în urmă
părinte
comite
b39d60f7e7

+ 34 - 22
themis-backend/src/main/java/com/qmth/themis/backend/api/SysController.java

@@ -7,6 +7,7 @@ import com.google.gson.Gson;
 import com.qmth.themis.backend.config.DictionaryConfig;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.dto.AuthDto;
 import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TEExamQueryDto;
 import com.qmth.themis.business.entity.*;
@@ -15,6 +16,7 @@ import com.qmth.themis.business.enums.RoleEnum;
 import com.qmth.themis.business.enums.UploadFileEnum;
 import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.EhcacheUtil;
+import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.ServletUtil;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
@@ -79,6 +81,9 @@ public class SysController {
     @Resource
     TEExamStudentService teExamStudentService;
 
+    @Resource
+    RedisUtil redisUtil;
+
     @ApiOperation(value = "菜单查询接口")
     @RequestMapping(value = "/getMenu", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "菜单信息", response = TBPrivilege.class)})
@@ -289,39 +294,46 @@ public class SysController {
         }
         //首先查询当前用户所要监控的roomCode
         QueryWrapper<TBExamInvigilateUser> examInvigilateUserQueryWrapper = new QueryWrapper<>();
+        AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId())
-                .eq(TBExamInvigilateUser::getExamId, examId)
-                .eq(TBExamInvigilateUser::getUserId, tbUser.getId());
+                .eq(TBExamInvigilateUser::getExamId, examId);
+        if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
+            examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getUserId, tbUser.getId());
+        }
         List<TBExamInvigilateUser> tbExamInvigilateUserList = tbExamInvigilateUserService.list(examInvigilateUserQueryWrapper);
         Set<String> roomCodeSet = null;
         if (Objects.nonNull(tbExamInvigilateUserList) && tbExamInvigilateUserList.size() > 0) {
             roomCodeSet = tbExamInvigilateUserList.stream().map(s -> s.getRoomCode()).collect(Collectors.toSet());
+        } else {
+            tbExamInvigilateUserList = null;
         }
-        //根据roomCode获取当前老师所要监考的全部应考学生数
-        QueryWrapper<TEExamStudent> teExamStudentQueryWrapper = new QueryWrapper<>();
-        teExamStudentQueryWrapper.lambda().in(TEExamStudent::getRoomCode, roomCodeSet);
-        List<TEExamStudent> teExamStudentList = teExamStudentService.list(teExamStudentQueryWrapper);
-        Set<Long> examActivityIdSet = null;
         List<TEExamActivity> teExamActivityList = null;
-        List<Map> courseList = null;
-        if (Objects.nonNull(teExamStudentList) && teExamStudentList.size() > 0) {
-            examActivityIdSet = new HashSet<>();
-            courseList = new ArrayList<>();
-            Set<Long> finalExamActivityIdSet = examActivityIdSet;
-            List<Map> finalCourseList = courseList;
-            teExamStudentList.forEach(s -> {
-                finalExamActivityIdSet.add(s.getExamActivityId());
-                Map map = new HashMap();
-                map.put("courseCode", s.getCourseCode());
-                map.put("courseName", s.getCourseName());
-                finalCourseList.add(map);
-            });
-            teExamActivityList = teExamActivityService.listByIds(examActivityIdSet);
+        Set<Map> courseSet = null;
+        if (Objects.nonNull(roomCodeSet)) {
+            //根据roomCode获取当前老师所要监考的全部应考学生数
+            QueryWrapper<TEExamStudent> teExamStudentQueryWrapper = new QueryWrapper<>();
+            teExamStudentQueryWrapper.lambda().in(TEExamStudent::getRoomCode, roomCodeSet);
+            List<TEExamStudent> teExamStudentList = teExamStudentService.list(teExamStudentQueryWrapper);
+            Set<Long> examActivityIdSet = null;
+            if (Objects.nonNull(teExamStudentList) && teExamStudentList.size() > 0) {
+                examActivityIdSet = new HashSet<>();
+                courseSet = new HashSet<>();
+                Set<Long> finalExamActivityIdSet = examActivityIdSet;
+                Set<Map> finalCourseSet = courseSet;
+                teExamStudentList.forEach(s -> {
+                    finalExamActivityIdSet.add(s.getExamActivityId());
+                    Map map = new HashMap();
+                    map.put("courseCode", s.getCourseCode());
+                    map.put("courseName", s.getCourseName());
+                    finalCourseSet.add(map);
+                });
+                teExamActivityList = teExamActivityService.listByIds(examActivityIdSet);
+            }
         }
         Map map = new HashMap();
         map.put("examActivitys", teExamActivityList);
         map.put("examRooms", tbExamInvigilateUserList);
-        map.put("examCourses", courseList);
+        map.put("examCourses", courseSet);
         return ResultUtil.ok(map);
     }
 }