<?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.zy.asrs.wcs.system.mapper.RoleMenuMapper"> 
 | 
  
 | 
    <select id="listMenuByUserId" resultType="com.zy.asrs.wcs.system.entity.Menu"> 
 | 
        select * from sys_menu 
 | 
        where 1=1 
 | 
        <if test="type != null"> 
 | 
            AND type = #{type} 
 | 
        </if> 
 | 
        and deleted = 0 
 | 
        and id in ( 
 | 
            select menu_id from sys_role_menu 
 | 
            where role_id in ( 
 | 
                select sur.role_id from sys_user_role sur 
 | 
                left join sys_role sr on sur.role_id = sr.id 
 | 
                where 1=1 
 | 
                and sur.user_id = #{userId} 
 | 
                and sr.deleted = 0 
 | 
            ) 
 | 
        ) 
 | 
        order by 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> 
 |