<?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="cc.mrbird.febs.system.mapper.MenuMapper"> 
 | 
    <resultMap id="menu" type="cc.mrbird.febs.system.entity.Menu"> 
 | 
        <id column="MENU_ID" jdbcType="DECIMAL" property="menuId" /> 
 | 
        <result column="PARENT_ID" jdbcType="DECIMAL" property="parentId" /> 
 | 
        <result column="MENU_NAME" jdbcType="VARCHAR" property="menuName" /> 
 | 
        <result column="URL" jdbcType="VARCHAR" property="url" /> 
 | 
        <result column="PERMS" jdbcType="VARCHAR" property="perms" /> 
 | 
        <result column="ICON" jdbcType="VARCHAR" property="icon" /> 
 | 
        <result column="TYPE" jdbcType="CHAR" property="type" /> 
 | 
        <result column="ORDER_NUM" jdbcType="DECIMAL" property="orderNum" /> 
 | 
        <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" /> 
 | 
        <result column="MODIFY_TIME" jdbcType="TIMESTAMP" property="modifyTime" /> 
 | 
    </resultMap> 
 | 
  
 | 
    <select id="findUserPermissions" resultMap="menu"> 
 | 
        SELECT 
 | 
            m.perms 
 | 
        FROM 
 | 
            t_role r 
 | 
        LEFT JOIN t_user_role ur ON (r.role_id = ur.role_id) 
 | 
        LEFT JOIN t_user u ON (u.user_id = ur.user_id) 
 | 
        LEFT JOIN t_role_menu rm ON (rm.role_id = r.role_id) 
 | 
        LEFT JOIN t_menu m ON (m.menu_id = rm.menu_id) 
 | 
        WHERE 
 | 
            u.username = #{username} 
 | 
        AND m.perms is not null 
 | 
        AND m.perms <> '' 
 | 
    </select> 
 | 
  
 | 
    <select id="findUserMenus" resultMap="menu"> 
 | 
        SELECT 
 | 
            m.* 
 | 
        FROM 
 | 
            t_menu m 
 | 
        WHERE 
 | 
            m.type <> 1 
 | 
        AND m.MENU_ID IN ( 
 | 
            SELECT DISTINCT 
 | 
                rm.menu_id 
 | 
            FROM 
 | 
                t_role_menu rm 
 | 
            LEFT JOIN t_role r ON (rm.role_id = r.role_id) 
 | 
            LEFT JOIN t_user_role ur ON (ur.role_id = r.role_id) 
 | 
            LEFT JOIN t_user u ON (u.user_id = ur.user_id) 
 | 
            WHERE 
 | 
                u.username = #{username} 
 | 
        ) 
 | 
        ORDER BY 
 | 
          m.order_num 
 | 
    </select> 
 | 
</mapper> 
 |