From 01c12130c252155f22a1f8b1764e1049aaa97646 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期四, 21 五月 2026 18:01:09 +0800
Subject: [PATCH]  feat: /system/user/userListNoPage 返回角色ID集合

---
 src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 84 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
index 0fbd6be..062c117 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
@@ -1,11 +1,18 @@
 package com.ruoyi.project.system.service.impl;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.project.system.domain.*;
+import com.ruoyi.project.system.mapper.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -17,17 +24,8 @@
 import com.ruoyi.common.utils.bean.BeanValidators;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
-import com.ruoyi.project.system.domain.SysPost;
-import com.ruoyi.project.system.domain.SysRole;
-import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.system.domain.SysUserPost;
-import com.ruoyi.project.system.domain.SysUserRole;
-import com.ruoyi.project.system.mapper.SysPostMapper;
-import com.ruoyi.project.system.mapper.SysRoleMapper;
-import com.ruoyi.project.system.mapper.SysUserMapper;
-import com.ruoyi.project.system.mapper.SysUserPostMapper;
-import com.ruoyi.project.system.mapper.SysUserRoleMapper;
 import com.ruoyi.project.system.service.ISysConfigService;
+import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysUserService;
 
 /**
@@ -38,6 +36,9 @@
 @Service
 public class SysUserServiceImpl implements ISysUserService
 {
+    @Autowired
+    private SysUserDeptMapper sysUserDeptMapper;
+
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
 
     @Autowired
@@ -59,6 +60,9 @@
     private ISysConfigService configService;
 
     @Autowired
+    private ISysDeptService deptService;
+
+    @Autowired
     protected Validator validator;
 
     /**
@@ -71,7 +75,19 @@
     @DataScope(deptAlias = "d", userAlias = "u")
     public List<SysUser> selectUserList(SysUser user)
     {
-        return userMapper.selectUserList(user);
+        List<SysUser> userList = userMapper.selectUserList(user);
+        // 灏嗚鑹睮D瀛楃涓茶浆鎹负鏁扮粍
+        userList.forEach(u -> {
+            if (u.getRoleIdsStr() != null && !u.getRoleIdsStr().isEmpty()) {
+                String[] strIds = u.getRoleIdsStr().split(",");
+                Long[] roleIds = new Long[strIds.length];
+                for (int i = 0; i < strIds.length; i++) {
+                    roleIds[i] = Long.parseLong(strIds[i]);
+                }
+                u.setRoleIds(roleIds);
+            }
+        });
+        return userList;
     }
 
     /**
@@ -165,7 +181,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkUserNameUnique(SysUser user)
+    public boolean checkUserNameUnique(SysUser user)
     {
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkUserNameUnique(user.getUserName());
@@ -183,7 +199,7 @@
      * @return
      */
     @Override
-    public String checkPhoneUnique(SysUser user)
+    public boolean checkPhoneUnique(SysUser user)
     {
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
@@ -201,7 +217,7 @@
      * @return
      */
     @Override
-    public String checkEmailUnique(SysUser user)
+    public boolean checkEmailUnique(SysUser user)
     {
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkEmailUnique(user.getEmail());
@@ -262,6 +278,8 @@
         insertUserPost(user);
         // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
         insertUserRole(user);
+        // 鏂板閮ㄩ棬鍏宠仈
+        bindUserDept(user);
         return rows;
     }
 
@@ -450,7 +468,7 @@
 
     /**
      * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅
-     * 
+     *
      * @param userIds 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID
      * @return 缁撴灉
      */
@@ -467,6 +485,9 @@
         userRoleMapper.deleteUserRole(userIds);
         // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱�
         userPostMapper.deleteUserPost(userIds);
+        // 鍒犻櫎鐢ㄦ埛涓庨儴闂ㄦ暟鎹�
+        sysUserDeptMapper.delete(new LambdaQueryWrapper<SysUserDept>()
+                .in(SysUserDept::getUserId, userIds));
         return userMapper.deleteUserByIds(userIds);
     }
 
@@ -489,7 +510,6 @@
         int failureNum = 0;
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
-        String password = configService.selectConfigByKey("sys.user.initPassword");
         for (SysUser user : userList)
         {
             try
@@ -499,19 +519,21 @@
                 if (StringUtils.isNull(u))
                 {
                     BeanValidators.validateWithException(validator, user);
-                    checkUserAllowed(user);
-                    checkUserDataScope(user.getUserId());
+                    String password = configService.selectConfigByKey("sys.user.initPassword");
                     user.setPassword(SecurityUtils.encryptPassword(password));
                     user.setCreateBy(operName);
-                    this.insertUser(user);
+                    userMapper.insertUser(user);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆鎴愬姛");
                 }
                 else if (isUpdateSupport)
                 {
                     BeanValidators.validateWithException(validator, user);
+                    checkUserAllowed(u);
+                    checkUserDataScope(u.getUserId());
+                    user.setUserId(u.getUserId());
                     user.setUpdateBy(operName);
-                    this.updateUser(user);
+                    userMapper.updateUser(user);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 鏇存柊鎴愬姛");
                 }
@@ -540,4 +562,46 @@
         }
         return successMsg.toString();
     }
+
+    /**
+     * 涓嶅垎椤电敤鎴锋煡璇�
+     * @param user
+     * @return
+     */
+    @Override
+    public List<SysUser> userListNoPage(SysUser user) {
+        List<SysUser> userList = userMapper.selectUserList(user);
+        userList.forEach(u -> {
+            if (u.getRoleIdsStr() != null && !u.getRoleIdsStr().isEmpty()) {
+                String[] strIds = u.getRoleIdsStr().split(",");
+                Long[] roleIds = new Long[strIds.length];
+                for (int i = 0; i < strIds.length; i++) {
+                    roleIds[i] = Long.parseLong(strIds[i]);
+                }
+                u.setRoleIds(roleIds);
+            }
+        });
+        return userList;
+    }
+
+    /**
+     * 缁戝畾鐢ㄦ埛閮ㄩ棬
+     * @param user
+     * @return
+     */
+    @Override
+    public int bindUserDept(SysUser user) {
+        // 鍒犻櫎鎵�鏈夊叧鑱旂粦瀹�
+        LambdaQueryWrapper<SysUserDept> delWrapper = new LambdaQueryWrapper<>();
+        delWrapper.eq(SysUserDept::getUserId, user.getUserId());
+        sysUserDeptMapper.delete(delWrapper);
+        // 閲嶆柊缁戝畾
+        for (int i = 0; i < user.getDeptIds().length; i++) {
+            SysUserDept sysUserDept = new SysUserDept();
+            sysUserDept.setDeptId(user.getDeptIds()[i]);
+            sysUserDept.setUserId(user.getUserId());
+            sysUserDeptMapper.insert(sysUserDept);
+        }
+        return user.getDeptIds().length;
+    }
 }

--
Gitblit v1.9.3