From 2873f1cd6ea6caac062740e05994a1f0a880ffde Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 12 三月 2024 11:27:20 +0800
Subject: [PATCH] 一个用户只能是一个部门的管理员、创建随机试卷的时候人员只能选当前部门的人,试卷增加部门id

---
 src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
index d138d98..aa6e62f 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -63,13 +63,13 @@
             throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
         }
         if (Objects.nonNull(department.getAdminId())) {
+            Integer adminNum = departmentMapper.countByAdminId(department.getAdminId(), department.getId());
+            if (adminNum > 0) {
+                throw new RuntimeException("涓�涓敤鎴峰彧鑳芥槸涓�涓崟浣嶇殑绠$悊鍛�");
+            }
             if (! Objects.equals(entity.getAdminId(), department.getAdminId())) {
                 // 鍙栨秷鍘熷厛鐨勭鐞嗗憳鏍囪瘑
-                List<Integer> depIds = departmentMapper.selectByAdminId(entity.getAdminId());
-                depIds.remove(department.getId());
-                if (depIds.size() < 1) {
-                    userMapper.updateDeptAdmin(entity.getAdminId(), DeptAdminEnum.NO.getValue());
-                }
+                userMapper.updateDeptAdmin(entity.getAdminId(), DeptAdminEnum.NO.getValue());
             }
             // 鏍囪瘑閮ㄩ棬绠$悊鍛�
             userMapper.updateDeptAdmin(department.getAdminId(), DeptAdminEnum.YES.getValue());
@@ -91,8 +91,11 @@
     }
 
     @Override
-    public List<Department> gets() {
-        return departmentMapper.gets();
+    public List<Department> gets(Integer deptId) {
+        if (deptId == -1) {
+            deptId = null;
+        }
+        return departmentMapper.gets(deptId);
     }
 
     @Override
@@ -117,13 +120,13 @@
             throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
         }
         if (Objects.nonNull(form.getAdminId())) {
+            Integer adminNum = departmentMapper.countByAdminId(form.getAdminId(), form.getId());
+            if (adminNum > 0) {
+                throw new RuntimeException("涓�涓敤鎴峰彧鑳芥槸涓�涓崟浣嶇殑绠$悊鍛�");
+            }
             if (! Objects.equals(entity.getAdminId(), form.getAdminId())) {
                 // 鍙栨秷鍘熷厛鐨勭鐞嗗憳鏍囪瘑
-                List<Integer> depIds = departmentMapper.selectByAdminId(entity.getAdminId());
-                depIds.remove(form.getId());
-                if (depIds.size() < 1) {
-                    userMapper.updateDeptAdmin(entity.getAdminId(), DeptAdminEnum.NO.getValue());
-                }
+                userMapper.updateDeptAdmin(entity.getAdminId(), DeptAdminEnum.NO.getValue());
             }
             // 鏍囪瘑閮ㄩ棬绠$悊鍛�
             userMapper.updateDeptAdmin(form.getAdminId(), DeptAdminEnum.YES.getValue());

--
Gitblit v1.8.0