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