RoleMapper.xml 3.86 KB
<?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="org.thingsboard.server.dao.yunteng.mapper.RoleMapper">
    <resultMap id="roleDtoMap" type="org.thingsboard.server.common.data.yunteng.dto.RoleDTO">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="roleType" column="role_type"/>
        <result property="tenantId" column="tenant_id"/>
        <result property="enabled" column="enabled"/>
        <result property="creator" column="creator"/>
        <result property="createTime" column="create_time"/>
        <result property="updater" column="updater"/>
        <result property="updateTime" column="update_time"/>
        <result property="code" column="code"/>
    </resultMap>
    <select id="checkRoleUserMappingByRoleIds" resultType="java.lang.String">
        SELECT user_id FROM sys_user_role WHERE role_id IN
        <foreach collection="ids" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
        GROUP BY user_id
    </select>
    <delete id="deleteRoleBatchByTenantIds">
        DELETE FROM sys_role WHERE tenant_id in (
        SELECT tenant_id FROM sys_tenant WHERE id IN
        <foreach collection="tenantIds" item="tenantId" open="(" separator="," close=")">
            #{tenantId}
        </foreach>
        )
    </delete>

    <delete id="deleteRoleMenuMappingByRoleIds">
        DELETE FROM sys_role_menu WHERE role_id IN
        <foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
            #{roleId}
        </foreach>
    </delete>

    <delete id="deleteRoleUserMappingByRoleIds">
        DELETE FROM sys_user_role WHERE role_id IN
        <foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
            #{roleId}
        </foreach>
    </delete>

    <delete id="deleteRoleUserMappingByUserIds">
        DELETE FROM sys_user_role WHERE user_id IN
        <foreach collection="userIds" item="userId" open="(" separator="," close=")">
            #{userId}
        </foreach>
    </delete>

    <delete id="deleteRoleMenuMappingByMenuIds">
        DELETE FROM sys_role_menu WHERE menu_id IN
        <foreach collection="menuIds" item="menuId" open="(" separator="," close=")">
            #{menuId}
        </foreach>
    </delete>

    <select id="getAllIdsByTenantId" resultType="java.lang.String">
        SELECT id from sys_role WHERE tenant_id IN
        <foreach collection="tenantIds" item="tenantId" open="(" separator="," close=")">
            #{tenantId}
        </foreach>
    </select>

    <select id="selectRoleByUserId" resultType="org.thingsboard.server.dao.yunteng.entities.SysRoleEntity">
        SELECT *
        FROM sys_role
        WHERE id IN (SELECT role_id FROM sys_user_role WHERE user_id = #{userId})
    </select>

    <select id="getMenuIdsByRoleId" resultType="java.lang.String">
        SELECT menu_id
        FROM sys_role_menu
        WHERE role_id = #{roleId}
    </select>

    <delete id="saveUserRoleMapping">
        INSERT INTO sys_user_role(user_id, role_id)
        VALUES (#{userId}, #{roleId})
    </delete>

    <select id="findRoleInfo" resultMap="roleDtoMap">
        SELECT id,name,role_type,tenant_id,creator,create_time,updater,update_time,remark,code FROM sys_role
        <where>
            enabled='t'
            <if test="roleType !=null and roleType !=''">AND role_type=#{roleType}</if>
            <if test="tenantId !=null and tenantId !=''">AND tenant_id=#{tenantId}</if>
            <if test="code !=null and code !=''">AND code=#{code}</if>
            <if test="roleIds !=null">OR id IN
                <foreach collection="roleIds" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        </where>

    </select>
</mapper>