From 7f03c1aa378b33379cd15f035904888bbcbf8bac Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 17 五月 2024 20:30:17 +0800
Subject: [PATCH] 学员查询数据权限

---
 src/main/resources/mapper/ExamPaperMapper.xml                                        |    7 +++++--
 src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java |    1 -
 src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java             |    3 ++-
 src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java                |    3 ++-
 src/main/java/com/mindskip/xzs/domain/vo/UserVO.java                                 |   18 ++++++++++--------
 src/main/java/com/mindskip/xzs/service/ExamPaperService.java                         |    9 ++++++++-
 6 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java b/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java
index 1ac3145..e7b5b97 100644
--- a/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java
+++ b/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java
@@ -89,7 +89,6 @@
                     ).permitAll()
                     .antMatchers("/files/**").permitAll()
                     // 闈欐�佽祫婧愶紝鍙尶鍚嶈闂�
-                    // todo 璁剧疆閮ㄩ棬绠$悊鍛樺彲浠ョ湅鐨勮姹�
                     .antMatchers("/api/admin/**").hasAnyRole(RoleEnum.ADMIN.getName(), RoleEnum.DEPT_ADMIN.getName())
                     .antMatchers("/api/student/**").hasAnyRole(RoleEnum.STUDENT.getName(), RoleEnum.DEPT_ADMIN.getName())
                     .anyRequest().permitAll()
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
index 1cc4a82..c4c3343 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
@@ -138,6 +138,7 @@
 
     @RequestMapping(value = "/selectStudent", method = RequestMethod.POST)
     public RestResponse<PageInfo<UserVO>> selectStudent(@RequestBody UserVO userVO) {
-        return RestResponse.ok(examPaperService.selectStudent(userVO));
+        List<Integer> adminDeptIds = getAdminDeptIds();
+        return RestResponse.ok(examPaperService.selectStudent(userVO, adminDeptIds));
     }
 }
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java b/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java
index 2a8d14a..05de999 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java
@@ -6,6 +6,7 @@
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 public class UserVO implements Serializable {
 
@@ -91,11 +92,19 @@
 
     private Integer tagId;
 
-    private Integer deptId;
+    private List<Integer> deptIds;
 
     private Integer pageIndex;
 
     private Integer pageSize;
+
+    public List<Integer> getDeptIds() {
+        return deptIds;
+    }
+
+    public void setDeptIds(List<Integer> deptIds) {
+        this.deptIds = deptIds;
+    }
 
     public Integer getPageIndex() {
         return pageIndex;
@@ -121,13 +130,6 @@
         this.tagId = tagId;
     }
 
-    public Integer getDeptId() {
-        return deptId;
-    }
-
-    public void setDeptId(Integer deptId) {
-        this.deptId = deptId;
-    }
 
     public String getConditionDetail() {
         return conditionDetail;
diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
index 8db3f0a..38f9bdb 100644
--- a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
+++ b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
@@ -42,5 +42,12 @@
 
     List<ExamPaper> list(List<Integer> deptIds);
 
-    PageInfo<UserVO> selectStudent(UserVO userVO);
+    /**
+     * 鑾峰彇閮ㄩ棬鐨勫鐢�
+     *
+     * @param userVO
+     * @param adminDeptIds
+     * @return
+     */
+    PageInfo<UserVO> selectStudent(UserVO userVO, List<Integer> adminDeptIds);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
index beeb070..8001bb0 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -631,7 +631,8 @@
     }
 
     @Override
-    public PageInfo<UserVO> selectStudent(UserVO userVO) {
+    public PageInfo<UserVO> selectStudent(UserVO userVO, List<Integer> adminDeptIds) {
+        userVO.setDeptIds(ObjectUtils.isNotEmpty(userVO.getDeptIds()) ? userVO.getDeptIds() : adminDeptIds);
         return PageHelper.startPage(userVO.getPageIndex(), userVO.getPageSize()).doSelectPageInfo(() ->
                 examPaperMapper.selectStudent(userVO));
     }
diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index c04d6c7..93ad348 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -461,8 +461,11 @@
           <if test="tagId != null and tagId != ''">
              and b.tag_id = #{tagId}
           </if>
-          <if test="deptId != null and deptId != ''">
-            and c.department_id = #{deptId}
+          <if test="deptIds != null and deptIds.size > 0">
+            and c.department_id in
+            <foreach collection="deptIds" open="(" separator="," close=")" item="deptId">
+              #{deptId}
+            </foreach>
           </if>
       group by a.id, a.real_name
       order by a.id

--
Gitblit v1.8.0