<?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.moral.api.mapper.ManageMenuMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.moral.api.entity.ManageMenu">
|
<id column="id" property="id"/>
|
<result column="name" property="name"/>
|
<result column="url" property="url"/>
|
<result column="icon" property="icon"/>
|
<result column="parent_id" property="parentId"/>
|
<result column="order" property="order"/>
|
<result column="create_time" property="createTime"/>
|
<result column="update_time" property="updateTime"/>
|
<result column="is_delete" property="isDelete"/>
|
</resultMap>
|
|
<!--父子结构查询映射结果-->
|
<resultMap id="ParentChildrenResultMap" type="com.moral.api.entity.ManageMenu">
|
<id column="id" property="id"/>
|
<result column="name" property="name"/>
|
<result column="url" property="url"/>
|
<result column="icon" property="icon"/>
|
<result column="parent_id" property="parentId"/>
|
<result column="order" property="order"/>
|
<result column="create_time" property="createTime"/>
|
<result column="update_time" property="updateTime"/>
|
<result column="is_delete" property="isDelete"/>
|
<collection property="children" ofType="com.moral.api.entity.ManageMenu" column="id" select="getChildrenByParentId"></collection>
|
</resultMap>
|
|
<sql id="Base_Column_List">
|
mm.id,mm.name,mm.url,mm.icon,mm.parent_id,mm.order,mm.create_time,mm.update_time,mm.is_delete
|
</sql>
|
|
<!--根据角色集合查询所有的父菜单-->
|
<select id="getParentMenuByRoles" resultMap="BaseResultMap">
|
select
|
<include refid="Base_Column_List"></include>
|
from
|
manage_menu mm
|
join
|
manage_role_menu mrm
|
on
|
mm.`id` = mrm.`menu_id` and mm.`is_delete`=0
|
join
|
manage_role mr
|
on
|
mr.`id` = mrm.`role_id` and mr.`id` IN
|
<foreach collection="list" separator="," open="(" close=")" item="role">
|
#{role.id}
|
</foreach>
|
where
|
mm.`is_delete`=0
|
AND
|
mm.`parent_id`=0;
|
</select>
|
|
<!--根据父菜单Id查询所有的子菜单-->
|
<select id="getChildrenByParentId" parameterType="Integer" resultMap="BaseResultMap">
|
SELECT
|
<include refid="Base_Column_List"></include>
|
FROM
|
manage_menu mm
|
WHERE
|
mm.parent_id = #{value}
|
</select>
|
|
<!--根据角色查询父子结构的菜单-->
|
<select id="getParentChildrenMenusByRoles" resultMap="ParentChildrenResultMap">
|
select
|
<include refid="Base_Column_List"></include>
|
from
|
manage_menu mm
|
join
|
manage_role_menu mrm
|
on
|
mm.`id` = mrm.`menu_id` and mm.`is_delete`=0
|
join
|
manage_role mr
|
on
|
mr.`id` = mrm.`role_id` and mr.`id` IN
|
<foreach collection="list" separator="," open="(" close=")" item="role">
|
#{role.id}
|
</foreach>
|
where
|
mm.`is_delete`=0
|
AND
|
mm.`parent_id`=0;
|
</select>
|
|
</mapper>
|