From 8245a52ca30b397e5ec6fcefe391e3b57475fb64 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 17 五月 2024 20:27:18 +0800
Subject: [PATCH] fix:部门管理员权限

---
 src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java     |    3 ++-
 src/main/resources/mapper/ExamPaperMapper.xml                                    |    2 +-
 src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserPageRequestVM.java       |    9 +++++++++
 src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java         |    3 ++-
 src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java |    2 ++
 src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java   |    3 ++-
 src/main/java/com/mindskip/xzs/controller/admin/UserController.java              |    2 +-
 src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java                |    3 +++
 src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java    |    3 ++-
 src/main/resources/mapper/DepartmentExamineMapper.xml                            |   12 ++++++++++++
 src/main/resources/mapper/UserMapper.xml                                         |    4 ++--
 11 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java b/src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java
index 075741a..8205e50 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java
@@ -8,6 +8,7 @@
 import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
 import com.mindskip.xzs.service.IDepartmentExamineService;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
@@ -29,6 +30,7 @@
 
     @RequestMapping(value = "list", method = RequestMethod.POST)
     public RestResponse<PageInfo<DepartmentExamineVO>> list(@RequestBody DepartmentExamineVO departmentExamineVO) {
+        departmentExamineVO.setDeptIds(ObjectUtils.isNotEmpty(departmentExamineVO.getDeptIds()) ? departmentExamineVO.getDeptIds() : getAdminDeptIds());
         return RestResponse.ok(departmentExamineService.pageInfo(departmentExamineVO));
     }
 
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java
index e903f59..6d2281e 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java
@@ -18,6 +18,7 @@
 import com.mindskip.xzs.utility.PageInfoHelper;
 import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM;
 import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -122,7 +123,7 @@
 
     @RequestMapping(value = "/statistic", method = RequestMethod.POST)
     public RestResponse<Map<String, Object>> statistic(@RequestBody ExamPaperStatisticVO examPaperStatisticVO) {
-        examPaperStatisticVO.setDepartmentId(isDeptAdmin() ? getAdminDeptIds() : null);
+        examPaperStatisticVO.setDepartmentId(ObjectUtils.isNotEmpty(examPaperStatisticVO.getDepartmentId()) ? examPaperStatisticVO.getDepartmentId() : getAdminDeptIds());
         return RestResponse.ok(examPaperAnswerService.statistic(examPaperStatisticVO));
     }
 }
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..9ad3081 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
@@ -19,6 +19,7 @@
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamResponseVM;
 import lombok.SneakyThrows;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -48,7 +49,7 @@
 
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     public RestResponse<PageInfo<ExamResponseVM>> pageList(@RequestBody ExamPaperPageRequestVM model) {
-        model.setDeptIds(isDeptAdmin() ? getAdminDeptIds() : null);
+        model.setDeptIds(ObjectUtils.isNotEmpty(model.getDeptIds()) ? model.getDeptIds() : getAdminDeptIds());
         if (Objects.nonNull(model.getLevel())) {
             model.setDeptIds(Collections.singletonList(model.getLevel()));
         }
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java
index c32ed50..11a3f5b 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java
@@ -15,6 +15,7 @@
 import com.mindskip.xzs.service.*;
 import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -99,7 +100,7 @@
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     public RestResponse<PageInfo<ExamPaperAnswer>> pageJudgeList(@RequestBody ExamPaperGradeQuery query) {
         // 濡傛灉鏄儴闂ㄧ鐞嗗憳锛岄渶瑕佸仛鏁版嵁鏉冮檺
-        query.setDeptId(isDeptAdmin() ? getAdminDeptIds() : null);
+        query.setDeptId(ObjectUtils.isNotEmpty(query.getDeptId()) ? query.getDeptId() : getAdminDeptIds());
         query.setFullTime();
         // 鏌ヨ
         PageInfo<ExamPaperAnswer> info = PageHelper.startPage(query.getPageIndex(), query.getPageSize()).doSelectPageInfo(() ->
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
index 161d99d..e9999fc 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
@@ -13,6 +13,7 @@
 import com.mindskip.xzs.utility.PageInfoHelper;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -36,7 +37,7 @@
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     public RestResponse<PageInfo<ExamTemplatesVO>> list(ExamTemplatesVO examTemplatesVO) throws Exception {
         // 濡傛灉鏄儴闂ㄧ鐞嗗憳锛岄渶瑕佸仛鏁版嵁鏉冮檺
-        examTemplatesVO.setDeptId(isDeptAdmin() ? getAdminDeptIds() : null);
+        examTemplatesVO.setDeptId(ObjectUtils.isNotEmpty(examTemplatesVO.getDeptId()) ? examTemplatesVO.getDeptId() : getAdminDeptIds());
         PageInfo<ExamTemplates> pageInfo = examTemplatesService.getByadmins(examTemplatesVO);
         PageInfo<ExamTemplatesVO> info = PageInfoHelper.copyMap(pageInfo, e -> {
             ExamTemplatesVO vo = new ExamTemplatesVO();
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
index 1969829..278505d 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
@@ -52,7 +52,7 @@
 
     @RequestMapping(value = "/page/list", method = RequestMethod.POST)
     public RestResponse<PageInfo<UserResponseVM>> pageList(@RequestBody UserPageRequestVM model) {
-        model.setDepartmentId(isDeptAdmin() ? getAdminDeptIds() : null);
+        model.setDepartmentId(ObjectUtils.isNotEmpty(model.getDepartmentId()) ? model.getDepartmentId() : getAdminDeptIds());
         PageInfo<User> pageInfo = userService.userPage(model);
         PageInfo<UserResponseVM> page = PageInfoHelper.copyMap(pageInfo, d ->
                 UserResponseVM.from(d));
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java b/src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java
index 6746d9b..bc82872 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java
@@ -8,6 +8,7 @@
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -66,5 +67,7 @@
 
     private Integer pageSize;
 
+    private List<Integer> deptIds;
+
 
 }
diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserPageRequestVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserPageRequestVM.java
index 2da26fa..57ecdf4 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserPageRequestVM.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserPageRequestVM.java
@@ -9,9 +9,18 @@
 
     private String userName;
     private Integer role;
+    private List<Integer> roles;
 
     private List<Integer> departmentId;
 
+    public List<Integer> getRoles() {
+        return roles;
+    }
+
+    public void setRoles(List<Integer> roles) {
+        this.roles = roles;
+    }
+
     public List<Integer> getDepartmentId() {
         return departmentId;
     }
diff --git a/src/main/resources/mapper/DepartmentExamineMapper.xml b/src/main/resources/mapper/DepartmentExamineMapper.xml
index c74b34e..387fc8a 100644
--- a/src/main/resources/mapper/DepartmentExamineMapper.xml
+++ b/src/main/resources/mapper/DepartmentExamineMapper.xml
@@ -14,9 +14,21 @@
                  left join t_user c on a.create_user = c.id and c.deleted = 0
                  left join t_user c2 on a.user_id = c2.id and c2.deleted = 0
         where a.deleted = 0
+        <if test="deptIds != null and deptIds.size() > 0">
+            and (
+                b.id in <foreach collection="deptIds" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach>
+             or b2.id in <foreach collection="deptIds" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach>
+            )
+        </if>
         <if test="userName != null">
             and c2.real_name like concat('%', #{userName}, '%')
         </if>
+        <if test="departmentIds != null">
+            and FIND_IN_SET(#{departmentIds}, a.now_department_ids)
+        </if>
+        <if test="nowDepartmentIds != null">
+            and FIND_IN_SET(#{nowDepartmentIds}, a.now_department_ids)
+        </if>
         GROUP BY a.id, a.create_time
         order by a.create_time desc
     </select>
diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index c04d6c7..6d5f65d 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -457,7 +457,7 @@
           left join t_user_tag b on a.id = b.user_id
           left join t_user_department c on a.id = c.user_id
       where
-          user_name != 'admin'
+          user_name != 'admin' and a.status != 2 and a.deleted = 0 and (a.`condition` = 0 or a.`condition` is null)
           <if test="tagId != null and tagId != ''">
              and b.tag_id = #{tagId}
           </if>
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 2a28d9a..d7252e5 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -350,8 +350,8 @@
             <if test="userName != null and userName != ''">
                 and real_name like concat('%',#{userName},'%')
             </if>
-            <if test="role != null ">
-                and role= #{role}
+            <if test="role != null and role.size() > 0">
+                and role in <foreach collection="role" item="item" open="(" separator="," close=")"> #{item} </foreach>
             </if>
     </select>
 

--
Gitblit v1.8.0