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

143 lines
5.8 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">
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}
</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-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>