Browse Source

监考考试批次查询

wangliang 1 year ago
parent
commit
32ac135947
1 changed files with 10 additions and 10 deletions
  1. 10 10
      themis-admin/src/main/java/com/qmth/themis/admin/api/SysController.java

+ 10 - 10
themis-admin/src/main/java/com/qmth/themis/admin/api/SysController.java

@@ -48,6 +48,7 @@ import javax.validation.constraints.Min;
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 系统信息 前端控制器
@@ -407,7 +408,7 @@ public class SysController {
         //首先查询当前用户所要监控的roomCode
         QueryWrapper<TBExamInvigilateUser> examInvigilateUserQueryWrapper = new QueryWrapper<>();
         AuthDto authDto = themisCacheService.addAccountAuthCache(tbUser.getId());
-        examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId())
+        examInvigilateUserQueryWrapper.select(" distinct exam_id,room_code ").lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId())
                 .eq(TBExamInvigilateUser::getExamId, examId);
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getUserId, tbUser.getId());
@@ -436,27 +437,26 @@ public class SysController {
         Set<Map> courseSet = null;
         if (Objects.nonNull(roomCodeSet)) {
             //根据roomCode获取当前老师所要监考的全部应考学生数
+            QueryWrapper<TEExamActivity> teExamActivityQueryWrapper = new QueryWrapper<>();
+            teExamActivityQueryWrapper.lambda().eq(TEExamActivity::getExamId, examId);
+            teExamActivityQueryWrapper.lambda().last(" order by CAST(code AS UNSIGNED) ");
+            teExamActivityList = teExamActivityService.list(teExamActivityQueryWrapper);
+
+            List<Long> teExamActivityIdList = teExamActivityList.stream().map(s -> s.getId()).collect(Collectors.toList());
             QueryWrapper<TEExamStudent> teExamStudentQueryWrapper = new QueryWrapper<>();
-            teExamStudentQueryWrapper.lambda().eq(TEExamStudent::getExamId, examId)
+            teExamStudentQueryWrapper.select(" distinct course_code,course_name ").lambda().eq(TEExamStudent::getExamId, examId)
+                    .in(TEExamStudent::getExamActivityId, teExamActivityIdList)
                     .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(SystemConstant.COURSE_CODE, s.getCourseCode());
                     map.put(SystemConstant.COURSE_NAME, s.getCourseName());
                     finalCourseSet.add(map);
                 });
-                QueryWrapper<TEExamActivity> teExamActivityQueryWrapper = new QueryWrapper<>();
-                teExamActivityQueryWrapper.lambda().in(TEExamActivity::getId, examActivityIdSet);
-                teExamActivityQueryWrapper.lambda().last(" order by CAST(code AS UNSIGNED) ");
-                teExamActivityList = teExamActivityService.list(teExamActivityQueryWrapper);
             }
         }
         Map map = new HashMap();