technological-brain-server/target/classes/mapper/SysPermissionMapper.xml

70 lines
3.1 KiB
XML
Raw Normal View History

2025-12-09 23:47:14 +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.CUST.brain.dao.mapper.SysPermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.CUST.brain.dao.domain.system.SysPermission">
<id column="id" property="id"/>
<result column="permission_name" property="permissionName"/>
<result column="permission_code" property="permissionCode"/>
<result column="permission_type" property="permissionType"/>
<result column="parent_id" property="parentId"/>
<result column="path" property="path"/>
<result column="component" property="component"/>
<result column="icon" property="icon"/>
<result column="sort" property="sort"/>
<result column="status" property="status"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="create_by" property="createBy"/>
<result column="update_by" property="updateBy"/>
<result column="flag" property="flag"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, permission_name, permission_code, permission_type, parent_id, path, component,
icon, sort_order, status, create_time, update_time, create_by, update_by, deleted
</sql>
<insert id="insertRolePermissionsBatch">
INSERT INTO sys_role_permission (id, role_id, permission_id, create_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.roleId}, #{item.permissionId}, NOW())
</foreach>
</insert>
<delete id="deleteRolePermissionsByRoleId">
DELETE FROM sys_role_permission WHERE role_id = #{roleId}
</delete>
<select id="selectPermissionsByUserId" resultType="com.CUST.brain.dao.domain.system.SysPermission">
SELECT DISTINCT p.* FROM sys_permission p
INNER JOIN sys_role_permission rp ON p.id = rp.permission_id
INNER JOIN sys_user_role ur ON rp.role_id = ur.role_id
WHERE ur.user_id = #{userId} AND p.flag = 0
</select>
<select id="selectPermissionsWithRoleStatus" resultType="com.CUST.brain.common.dto.system.PermissionTreeVO">
SELECT
p.id,
p.permission_name,
p.permission_code,
p.permission_type,
p.parent_id,
p.path,
p.component,
p.icon,
p.sort
FROM sys_permission p
LEFT JOIN sys_role_permission rp ON rp.role_id = #{roleId} AND rp.permission_id = p.id
WHERE p.status = 1
<if test="!isSuperAdmin">
AND p.permission_code NOT LIKE 'system%'
</if>
</select>
<select id="selectPermissionsByRoleId" resultType="com.CUST.brain.dao.domain.system.SysPermission">
SELECT p.*
FROM sys_permission p
INNER JOIN sys_role_permission rp ON p.id = rp.permission_id
WHERE rp.role_id = #{roleId}
</select>
</mapper>