kaiyu
2021-03-10 5097d13418e9a0bf605f5272f1b9e60fc62c80cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?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>