From acd62c1684cbde71954252ffdf89d0918491e6fc Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 02 四月 2025 19:48:10 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |  101 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 99 insertions(+), 2 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index e126467..9143807 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -17,6 +17,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -60,6 +61,9 @@
 
     @Autowired
     protected Validator validator;
+
+    @Value("${isAdmin}")
+    private List<Long> isAdmin;
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃
@@ -148,6 +152,99 @@
                 Map<String, Object> map = new HashMap<>();
                 map.put("deptCode", "");
                 if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode());
+                map.put("deptName", "");
+                if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName());
+                list.add(map);
+            }
+            sysUser.setBelongDepts(list);
+        }
+        return sysUser;
+    }
+
+    @Override
+    public SysUser selectUserByUserName2(String userName) {
+        String[] split = userName.split("&");
+        SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1]);
+        if (Objects.isNull(sysUser)) return sysUser;
+        List<SysDept> sysDepts = null;
+        if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
+            SysDept dept = new SysDept();
+            dept.setOrgid(split[1]);
+            sysDepts = sysDeptMapper.selectDeptList(dept);
+        } else {
+            sysDepts = sysUserDeptMapper.selectDeptListByUserId(sysUser.getUserId());
+        }
+        List<Long> deptIds = new ArrayList<>();
+        for (SysDept sysDept : sysDepts) {
+            deptIds.add(sysDept.getDeptId());
+        }
+        SysUserDept sysUserDept = new SysUserDept();
+        sysUserDept.setUserId(sysUser.getUserId());
+        sysUserDept.setDeptType(sysUser.getSearchscope());
+        List<SysUserDept> sysUserDeptKSs = null;
+        List<SysUserDept> sysUserDeptBQs = null;
+        if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) {
+            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
+                sysUserDept.setUserId(null);
+            }
+            sysUserDept.setDeptType("1");
+            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+            sysUserDept.setDeptType("2");
+            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+            //濡傛灉鏄痑dmin锛岄渶瑕佸sysUserDeptBQs锛宻ysUserDeptBQs鍘婚噸
+            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
+                List<SysUserDept> distinctUserDepts = new ArrayList<>();
+                Set<String> uniqueDeptCodes = new HashSet<>();
+                for (SysUserDept userDept : sysUserDeptKSs) {
+                    String deptCode = userDept.getDeptCode();
+                    if (StringUtils.isNotEmpty(deptCode) && !uniqueDeptCodes.contains(deptCode)) {
+                        distinctUserDepts.add(userDept);
+                        uniqueDeptCodes.add(deptCode);
+                    }
+                }
+
+                List<SysUserDept> distinctUserBQs = new ArrayList<>();
+                Set<String> uniqueBQCodes = new HashSet<>();
+                for (SysUserDept userDept : sysUserDeptBQs) {
+                    String deptCode = userDept.getDeptCode();
+                    if (StringUtils.isNotEmpty(deptCode) && !uniqueBQCodes.contains(deptCode)) {
+                        distinctUserBQs.add(userDept);
+                        uniqueBQCodes.add(deptCode);
+                    }
+                }
+                sysUserDeptKSs = distinctUserDepts;
+                sysUserDeptBQs = distinctUserBQs;
+            }
+
+        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) {
+            sysUserDept.setDeptType("1");
+            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) {
+            sysUserDept.setDeptType("2");
+            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+        }
+
+        sysUser.setDepts(deptIds);
+        if (!CollectionUtils.isEmpty(sysUserDeptBQs)) {
+            List<Map<String, Object>> list = new ArrayList<>();
+            for (SysUserDept sud : sysUserDeptBQs) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("districtCode", "");
+                if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("districtCode", sud.getDeptCode());
+                else continue;
+                map.put("districtName", "");
+                if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("districtName", sud.getDeptName());
+                list.add(map);
+            }
+            sysUser.setBelongWards(list);
+        }
+        if (!CollectionUtils.isEmpty(sysUserDeptKSs)) {
+            List<Map<String, Object>> list = new ArrayList<>();
+            for (SysUserDept sud : sysUserDeptKSs) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("deptCode", "");
+                if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode());
+                else continue;
                 map.put("deptName", "");
                 if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName());
                 list.add(map);
@@ -260,7 +357,7 @@
      */
     @Override
     public void checkUserAllowed(SysUser user) {
-        if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
+        if (StringUtils.isNotNull(user.getUserId()) && isAdmin.contains(user.getUserId())) {
             throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛");
         }
     }
@@ -272,7 +369,7 @@
      */
     @Override
     public void checkUserDataScope(Long userId) {
-        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+        if (!isAdmin.contains(SecurityUtils.getUserId())) {
             SysUser user = new SysUser();
             user.setUserId(userId);
             List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);

--
Gitblit v1.9.3