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 |   27 +++++++++++++++++++++++++--
 src/main/resources/mapper/system/SysUserMapper.xml                          |    8 +++++++-
 src/main/java/com/ruoyi/project/system/domain/SysUser.java                  |   12 ++++++++++++
 3 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/project/system/domain/SysUser.java b/src/main/java/com/ruoyi/project/system/domain/SysUser.java
index ac7f535..0178de7 100644
--- a/src/main/java/com/ruoyi/project/system/domain/SysUser.java
+++ b/src/main/java/com/ruoyi/project/system/domain/SysUser.java
@@ -84,6 +84,10 @@
     @TableField(exist = false)
     private Long[] roleIds;
 
+    /** 瑙掕壊ID瀛楃涓诧紙鐢ㄤ簬SQL鎷兼帴鎺ユ敹锛� */
+    @TableField(exist = false)
+    private String roleIdsStr;
+
     /** 宀椾綅缁� */
     @TableField(exist = false)
     private Long[] postIds;
@@ -382,4 +386,12 @@
             .append("remark", getRemark())
             .toString();
     }
+
+    public String getRoleIdsStr() {
+        return roleIdsStr;
+    }
+
+    public void setRoleIdsStr(String roleIdsStr) {
+        this.roleIdsStr = roleIdsStr;
+    }
 }
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 7773825..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
@@ -75,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;
     }
 
     /**
@@ -558,7 +570,18 @@
      */
     @Override
     public List<SysUser> userListNoPage(SysUser user) {
-        return userMapper.selectUserList(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;
     }
 
     /**
diff --git a/src/main/resources/mapper/system/SysUserMapper.xml b/src/main/resources/mapper/system/SysUserMapper.xml
index e4f818a..9d799bf 100644
--- a/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/src/main/resources/mapper/system/SysUserMapper.xml
@@ -24,6 +24,7 @@
         <result property="remark"       column="remark"       />
 		<result property="deptNames"       column="dept_names"       />
 		<result property="tenantId"       column="tenant_id"       />
+		<result property="roleIdsStr"    column="role_ids_str"    />
         <association property="dept"    javaType="com.ruoyi.project.system.domain.SysDept"         resultMap="deptResult" />
         <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
     </resultMap>
@@ -56,7 +57,7 @@
     </sql>
 
     <select id="selectUserList" parameterType="com.ruoyi.project.system.domain.SysUser" resultMap="SysUserResult">
-		select u.user_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,T2.dept_names from sys_user u
+		select u.user_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.tenant_id, T2.dept_names, T3.role_ids_str from sys_user u
 		left join
 		(	SELECT T1.user_id,GROUP_CONCAT(T2.dept_name SEPARATOR ', ') AS dept_names
 			FROM
@@ -69,6 +70,11 @@
 		</where>
 			GROUP BY T1.user_id
 		) T2 on T2.user_id = u.user_id
+		left join
+		(	SELECT ur.user_id, GROUP_CONCAT(ur.role_id) AS role_ids_str
+			FROM sys_user_role ur
+			GROUP BY ur.user_id
+		) T3 on T3.user_id = u.user_id
 		where u.del_flag = '0'
 		<if test="userId != null and userId != 0">
 			AND u.user_id = #{userId}

--
Gitblit v1.9.3