buhuazhen
10 天以前 01c12130c252155f22a1f8b1764e1049aaa97646
 feat: /system/user/userListNoPage 返回角色ID集合
已修改3个文件
47 ■■■■■ 文件已修改
src/main/java/com/ruoyi/project/system/domain/SysUser.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysUserMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}
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);
        // 将角色ID字符串转换为数组
        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;
    }
    /**
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}