<?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="org.sang.mapper.MenuMapper">
<resultMap id="BaseResultMap" type="org.sang.bean.Menu">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="url" property="url" jdbcType="VARCHAR"/>
<result column="path" property="path" jdbcType="VARCHAR"/>
<result column="component" property="component" javaType="java.lang.Object"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="iconCls" property="iconCls" jdbcType="VARCHAR"/>
<result column="keepAlive" property="keepAlive" jdbcType="BIT"/>
<result column="parentId" property="parentId" jdbcType="INTEGER"/>
<association property="meta" javaType="org.sang.bean.MenuMeta">
<result column="keepAlive" property="keepAlive"/>
<result column="requireAuth" property="requireAuth"/>
</association>
<collection property="roles" ofType="org.sang.bean.Role">
<id column="rid" property="id"/>
<result column="rname" property="name"/>
<result column="rnamezh" property="nameZh"/>
</collection>
<collection property="children" ofType="org.sang.bean.Menu">
<id column="id2" property="id"/>
<result column="path2" property="path" jdbcType="VARCHAR"/>
<result column="component2" property="component" jdbcType="VARCHAR"/>
<result column="name2" property="name" jdbcType="VARCHAR"/>
<result column="iconCls2" property="iconCls" jdbcType="VARCHAR"/>
<association property="meta" javaType="org.sang.bean.MenuMeta">
<result column="keepAlive2" property="keepAlive"/>
<result column="requireAuth2" property="requireAuth"/>
</association>
<collection property="children" ofType="org.sang.bean.Menu">
<id column="id3" property="id"/>
<result column="name3" property="name" jdbcType="VARCHAR"/>
</collection>
</collection>
</resultMap>
<select id="getAllMenu" resultMap="BaseResultMap">
select m.*,r.`id` as rid,r.`name` as rname,r.`nameZh` as rnamezh from menu m left join menu_role mr on m.`id`=mr.`mid` left join role r on mr.`rid`=r.`id` WHERE m.`enabled`=true order by m.`id` desc
</select>
<select id="getMenusByHrId" parameterType="Long" resultMap="BaseResultMap">
select m1.`id`,m1.`path`,m1.`component`,m1.`iconCls`,m1.`name`,m1.`requireAuth`,m2.`component` as component2,m2.`iconCls` as iconCls2,m2.`keepAlive` as keepAlive2,m2.`name` as name2,m2.`path` as path2,m2.`requireAuth` as requireAuth2 from menu m1,menu m2 where m1.`id`=m2.`parentId` and m1.`id`!=1 and m2.`id` in(select mr.`mid` from hr_role h_r,menu_role mr where h_r.`rid`=mr.`rid` and h_r.`hrid`=#{hrId}) and m2.`enabled`=true order by m1.`id`,m2.`id`
</select>
<select id="menuTree" resultMap="BaseResultMap">
select m1.`id`,m1.`name`,m2.`id` as id2,m2.`name` as name2,m3.`id` as id3,m3.`name` as name3 from menu m1,menu m2,menu m3 where m1.`id`=m2.`parentId` and m2.`id`=m3.`parentId` and m3.`enabled`=true
</select>
<select id="getMenusByRid" resultType="Long">
SELECT mid from menu_role WHERE rid=#{rid}
</select>
</mapper>