<?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="cn.sh.stc.sict.cloud.upms.dao.HpMenuMapper">

    <!-- 可根据自己的需求,是否要使用 -->
    <resultMap type="cn.sh.stc.sict.cloud.upms.model.HpMenu" id="hpMenuMap">
                    <result property="id" column="id"/>
                    <result property="moduleName" column="module_name"/>
                    <result property="parentId" column="parent_id"/>
                    <result property="name" column="name"/>
                    <result property="sortIdx" column="sort_idx"/>
                    <result property="apiUri" column="api_uri"/>
                    <result property="route" column="route"/>
                    <result property="menuType" column="menu_type"/>
                    <result property="perms" column="perms"/>
                    <result property="status" column="status"/>
                    <result property="icon" column="icon"/>
                    <result property="note" column="note"/>
                    <result property="createUserId" column="create_user_id"/>
                    <result property="createUserName" column="create_user_name"/>
                    <result property="createTime" column="create_time"/>
                    <result property="updateUserId" column="update_user_id"/>
                    <result property="updateUserName" column="update_user_name"/>
                    <result property="updateTime" column="update_time"/>
            </resultMap>

    <sql id="Base_Column_List">
        id,module_name,parent_id,name,sort_idx,api_uri,route,menu_type,perms,status,icon,note,create_user_id,create_user_name,create_time,update_user_id,update_user_name,update_time
    </sql>
    <select id="listByRoleId" resultMap="hpMenuMap">
        select m.*
        from hp_role_menu rm
            left join hp_menu m on rm.menu_id = m.id
        where rm.role_id = #{roleId}
        order by m.parent_id asc, sort_idx asc
    </select>
    <select id="listByUserId" resultMap="hpMenuMap">
        select m.*
        from hp_user_role ur
             join hp_role_menu rm on ur.role_id = rm.role_id
             join hp_menu m on rm.menu_id = m.id
        where ur.user_id = #{user_id}
        group by m.id
        order by m.parent_id asc, sort_idx asc
    </select>


</mapper>