WholeProcessPlatform/backend/src/main/resources/mapper/system/SysRoleMapper.xml

182 lines
6.9 KiB
XML
Raw Normal View History

2026-03-25 10:02:19 +08:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yfd.platform.system.mapper.SysRoleMapper">
<insert id="addRoleMenu">
INSERT INTO sys_role_menu
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null and id != ''">
id,
</if>
<if test="roleid != null and roleid != ''">
roleid,
</if>
<if test="menuid != null and menuid != ''">
menuid
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null and id != ''">
#{id},
</if>
<if test="roleid != null and roleid != ''">
#{roleid},
</if>
<if test="menuid != null and menuid != ''">
#{menuid}
</if>
</trim>
</insert>
<!--根据角色id查询该角色下的所有用户-->
<select id="isRoleUsersByroleid" resultType="java.util.Map">
select id,roleid,userid from sys_role_users where roleid=#{roleid}
</select>
<!--根据角色id查询该角色下的所有权限-->
<select id="isRoleMenuByRoleId" resultType="java.util.Map">
select id,roleid,menuid from sys_role_menu where roleid=#{roleid}
</select>
<select id="listRoleUsers" resultType="java.util.Map">
select a.id roleusersid, <!--分配权限id-->
a.roleid roleid, <!--角色id-->
a.userid userid, <!--用户id-->
b.code usercode, <!--用户编号-->
b.username username, <!--用户名称-->
b.orgid userorgid, <!--所属组织-->
b.avatar useravatar, <!--用户头像-->
b.email useremail, <!--用户邮箱-->
b.mobile usermobile, <!--手机号-->
b.account useraccount, <!--登录账号-->
b.lastupdatetime userlastupdatetime, <!--密码修改时间-->
b.status userstatus, <!--用户状态-->
b.lastmodifier userlastmodifier, <!--最近修改者-->
b.lastmodifydate userlastmodifydate, <!--最近修改日期-->
c.rolename rolename, <!--角色名称-->
c.level rolelevel, <!--角色级别-->
c.description roledescription, <!--角色描述-->
c.orgscope roleorgscope, <!--组织范围-->
c.optscope roleoptscope, <!--操作权限-->
c.busscope rolebusscope, <!--业务范围-->
c.isvaild roleisvaild, <!--是否有效-->
c.lastmodifier rolelastmodifier, <!--最近修改者-->
c.lastmodifydate rolelastmodifydate <!--最近修改日期-->
from sys_role_users a LEFT JOIN sys_user b on a.userid =b.id left join
sys_role c on a.roleid = c.id
where
1=1
<if test="orgid != null">
and b.orgid = #{orgid}
</if>
<if test="username != null">
and b.username like "%"#{username}"%"
</if>
<if test="status != null">
and b.status=#{status}
</if>
<if test="level != null">
and c.level=#{level}
</if>
<if test="rolename != null">
and c.rolename=#{rolename}
</if>
<if test="isvaild != null">
and c.isvaild=#{isvaild}
</if>
ORDER BY c.level,b.orgid,b.code
</select>
<!--根据用户id获取角色信息-->
<select id="getRoleByUserId"
resultType="com.yfd.platform.system.domain.SysRole">
2026-03-27 16:33:28 +08:00
SELECT
r.id,
r.rolename,
r.orgscope
FROM
sys_role_users ru
INNER JOIN sys_role r ON ru.roleid = r.id
WHERE
ru.userid =#{id}
2026-03-25 10:02:19 +08:00
</select>
<!--根据角色id获取用户id-->
<select id="getUserIdById" resultType="java.lang.String">
select userid from sys_role_users where roleid=#{roleid}
</select>
2026-03-26 17:27:18 +08:00
<select id="getRoleListByUserId" resultType="com.yfd.platform.system.domain.SysRole">
SELECT r.id, r.rolename, r.orgscope
FROM sys_role r
INNER JOIN sys_role_users ru ON r.id = ru.roleid
WHERE ru.userid = #{id}
</select>
2026-03-25 10:02:19 +08:00
2026-03-26 17:27:18 +08:00
<!--根据用户 id 获取角色 ID 列表-->
<select id="getRoleIdsByUserId" resultType="java.lang.String">
SELECT roleid
FROM sys_role_users
WHERE userid = #{id}
</select>
<!--查询角色列表Oracle 兼容版)-->
<select id="selectRoleList" resultType="com.yfd.platform.system.domain.SysRole">
SELECT r.id, r.rolecode, r.rolename, r."LEVEL", r.description,
r.orgscope, r.optscope, r.busscope, r.isvaild,
r.lastmodifier, r.lastmodifydate, r.custom1, r.custom2, r.custom3
FROM sys_role r
<where>
<if test="rolename != null and rolename != ''">
AND r.rolename LIKE '%' || #{rolename} || '%'
</if>
AND r."LEVEL" != '1'
</where>
ORDER BY r."LEVEL" ASC, lastmodifydate ASC
</select>
2026-05-09 19:10:54 +08:00
<!-- SysRoleMapper.xml -->
<select id="getRolesByUserIds" resultType="com.yfd.platform.system.domain.SysRole">
SELECT r.*
FROM SYS_ROLE r
INNER JOIN SYS_USER_ROLE ur ON r.ID = ur.ROLE_ID
WHERE ur.USER_ID IN
<foreach collection="userIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
2026-05-11 16:46:41 +08:00
<select id="getUserRolesByUserIds" resultType="java.util.HashMap">
SELECT
ur.USERID AS "userId",
r.ID AS "id",
r.ROLECODE AS "rolecode",
r.ROLENAME AS "rolename",
r."LEVEL" AS "level",
r.DESCRIPTION AS "description",
r.ISVAILD AS "isvaild",
r.ORGSCOPE AS "orgscope",
r.OPTSCOPE AS "optscope",
r.BUSSCOPE AS "busscope"
FROM
SYS_ROLE r
INNER JOIN SYS_ROLE_USERS ur ON r.ID = ur.ROLEID
WHERE ur.USERID IN
<foreach collection="userIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
2026-03-25 10:02:19 +08:00
<!--根据 角色id和用户id 删除系统角色用户对照 admin除外-->
<delete id="deleteRoleUsers">
delete from sys_role_users where userid !=(select u.id from sys_user u where u.account="admin") and roleid=#{roleid} and userid=#{urserid}
</delete>
<!--根据角色ID删除菜单与角色关联信息-->
<delete id="deleteRoleMenus">
DELETE FROM sys_role_menu WHERE roleid= #{id}
</delete>
<!--根据角色ID删除用户与角色关联信息-->
<delete id="deleteRoleUser">
DELETE FROM sys_role_users WHERE roleid= #{id}
</delete>
</mapper>