| <?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.vincent.rsf.server.system.mapper.RoleMenuMapper"> | 
|   | 
|     <select id="listMenuByUserId" resultType="com.vincent.rsf.server.system.entity.Menu"> | 
|         SELECT DISTINCT sm.* | 
|         FROM sys_menu sm | 
|         JOIN sys_role_menu srm ON sm.id = srm.menu_id | 
|         JOIN sys_user_role sur ON srm.role_id = sur.role_id | 
|         JOIN sys_role sr ON sur.role_id = sr.id | 
|         WHERE 1=1 | 
|         <if test="type != null"> | 
|             AND sm.type = #{type} | 
|         </if> | 
|         AND sur.user_id = #{userId} | 
|         AND sr.deleted = 0 | 
|         AND sm.deleted = 0 | 
|         ORDER BY sm.sort | 
|     </select> | 
|   | 
|     <select id="listStrictlyMenuByRoleId" resultType="java.lang.Long"> | 
|         select sm.id | 
|         from sys_menu sm | 
|         left join sys_role_menu srm on sm.id = srm.menu_id | 
|         where 1=1 | 
|         and sm.deleted = 0 | 
|         and srm.role_id = #{roleId} | 
|         <!-- | 
|         and sm.id not in ( | 
|             select sm.parent_id | 
|             from sys_menu sm | 
|             inner join sys_role_menu srm on sm.id = srm.menu_id | 
|             and srm.role_id = #{roleId} | 
|         ) | 
|         --> | 
|         order by sm.sort | 
|     </select> | 
|   | 
| </mapper> |