package com.tcm.training.admin.user.mapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface RbacQueryMapper { @Select("SELECT DISTINCT r.role_code " + "FROM sys_role r " + "INNER JOIN sys_user_role ur ON ur.role_id = r.id " + "WHERE ur.user_id = #{userId} AND r.deleted = 0 AND r.status = 1") List selectRoleCodesByUserId(@Param("userId") Long userId); @Select("SELECT DISTINCT m.permission_key " + "FROM sys_menu m " + "INNER JOIN sys_role_menu rm ON rm.menu_id = m.id " + "INNER JOIN sys_user_role ur ON ur.role_id = rm.role_id " + "INNER JOIN sys_role r ON r.id = ur.role_id " + "WHERE ur.user_id = #{userId} " + "AND m.deleted = 0 AND m.status = 1 " + "AND r.deleted = 0 AND r.status = 1 " + "AND m.permission_key IS NOT NULL AND m.permission_key <> ''") List selectPermissionKeysByUserId(@Param("userId") Long userId); }