<?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.auth.dao.base.mapper.v1.RolePermissionMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.auth.dao.base.entity.RolePermissionEntity">
        <id column="id" property="id"/>
        <id column="role_id" property="roleId"/>
        <id column="power_id" property="powerId"/>
        <id column="is_deleted" property="isDeleted"/>
        <id column="permission_id" property="permissionId"/>
        <id column="create_time" property="createTime"/>
        <id column="update_time" property="updateTime"/>
        <id column="create_user" property="createUser"/>
        <id column="update_user" property="updateUser"/>
        <id column="is_deleted" property="isDeleted"/>
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, role_id,power_id,is_deleted,permission_id, create_time, update_time, create_user, update_user, is_deleted
    </sql>

    <!-- 分页查询系统角色权限表内容 -->
    <select id="selectListByPage" resultType="com.auth.model.base.vo.RolePermissionVo">
        select
        base.*,
        create_user.username as create_username,
        update_user.username as update_username
        from sys_role_permission base
        left join sys_user create_user on create_user.id = base.create_user
        left join sys_user update_user on update_user.id = base.update_user
        <where>
            base.is_deleted = 0
            <if test="dto.roleId != null and dto.roleId != ''">
                and base.role_id like CONCAT('%',#{dto.roleId},'%')
            </if>
            <if test="dto.powerId != null and dto.powerId != ''">
                and base.power_id like CONCAT('%',#{dto.powerId},'%')
            </if>
            <if test="dto.isDeleted != null and dto.isDeleted != ''">
                and base.is_deleted like CONCAT('%',#{dto.isDeleted},'%')
            </if>
            <if test="dto.permissionId != null and dto.permissionId != ''">
                and base.permission_id like CONCAT('%',#{dto.permissionId},'%')
            </if>
        </where>
    </select>

</mapper>
