ZhuDongming
2019-11-28 70830c5b2e96cc1c76d4adb88ddced55e7476547
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?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.mapper.MenuMapper">
    <resultMap id="ResultMap" type="com.moral.entity.Menu">
        <id column="id" property="id" jdbcType="INTEGER"/>
        <result column="menu_code" property="menuCode" jdbcType="VARCHAR"/>
        <result column="menu_name" property="menuName" jdbcType="VARCHAR"/>
        <result column="channel_id" property="channelId" jdbcType="INTEGER" />
        <result column="menu_icon" property="menuIcon" jdbcType="VARCHAR"/>
        <result column="menu_url" property="menuUrl" jdbcType="VARCHAR"/>
        <result column="menu_order" property="menuOrder" jdbcType="INTEGER"/>
        <result column="menu_parent_id" property="menuParentId" jdbcType="INTEGER"/>
        <result column="menu_remark" property="menuRemark" jdbcType="VARCHAR"/>
        <result column="is_delete" property="isDelete" jdbcType="CHAR"/>
        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
    </resultMap>
 
    <resultMap id="BaseResultMap" type="com.moral.entity.Menu" extends="ResultMap">
        <association property="channel" javaType="com.moral.entity.Channel">
            <result column="channel_id" jdbcType="INTEGER" property="id" />
            <result column="channel_name" jdbcType="VARCHAR" property="channelName" />
        </association>
    </resultMap>
 
    <sql id="Example_Where_Clause">
        <where>
            <foreach collection="oredCriteria" item="criteria" separator="or">
                <if test="criteria.valid">
                    <trim prefix="(" suffix=")" prefixOverrides="and">
                        <foreach collection="criteria.criteria" item="criterion">
                            <choose>
                                <when test="criterion.noValue">
                                    and ${criterion.condition}
                                </when>
                                <when test="criterion.singleValue">
                                    and ${criterion.condition} #{criterion.value}
                                </when>
                                <when test="criterion.betweenValue">
                                    and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                                </when>
                                <when test="criterion.listValue">
                                    and ${criterion.condition}
                                    <foreach collection="criterion.value" item="listItem" open="(" close=")"
                                             separator=",">
                                        #{listItem}
                                    </foreach>
                                </when>
                            </choose>
                        </foreach>
                    </trim>
                </if>
            </foreach>
        </where>
    </sql>
 
    <select id="countByExample" parameterType="tk.mybatis.mapper.entity.Example" resultType="java.lang.Integer" >
        select count(*) from menu m
        <if test="_parameter != null" >
            <include refid="Example_Where_Clause" />
        </if>
    </select>
 
    <select id="selectWithMenuNameByExample" parameterType="tk.mybatis.mapper.entity.Example" resultMap="ResultMap">
        select
        <if test="distinct">
            distinct
        </if>
        <include refid="Base_Column_List"/>
        from menu m
        <if test="_parameter != null">
            <include refid="Example_Where_Clause"/>
        </if>
        <if test="orderByClause != null">
            order by ${orderByClause}
        </if>
    </select>
 
    <select id="getMenuList" resultMap="BaseResultMap" parameterType="tk.mybatis.mapper.entity.Example">
        select
        m.*,
        c.channel_name
        from menu m
        left join channel c on m.channel_id = c.id
        <if test="_parameter != null">
            <include refid="Example_Where_Clause"/>
        </if>
        <if test="orderByClause != null">
            order by ${orderByClause}
        </if>
    </select>
 
    <sql id="Base_Column_List">
        id, menu_code, menu_name, channel_id, menu_icon, menu_url, menu_order, menu_parent_id, menu_remark,
        is_delete, create_time, create_user, update_time, update_user
    </sql>
 
    <select id="getParentMenuList" resultMap="ResultMap">
        select
        distinct
        <include refid="Base_Column_List"/>
        from menu
        where id IN
        (select distinct(menu_parent_Id) from menu
        where menu_parent_Id <![CDATA[ <> ]]> 0)
        <if test="menuName != 'null'">
            and menu_name like concat('%',#{menuName},'%')
        </if>
    </select>
 
    <select id="getChannelId" resultType="java.lang.Integer">
        select
        distinct
        channel_id
        from menu
        where is_delete=0
    </select>
 
    <select id="getMenuListInfo" resultMap="ResultMap">
        select
        <include refid="Base_Column_List"/>
        from menu
        where is_delete=0
    </select>
 
    <select id="getMenuOrdersByRoleId" resultType="java.lang.Integer">
        select
        m.menu_order
        from menu m
        left join role_menu rm on m.id=rm.menu_id and m.channel_id= rm.channel_id
        where rm.role_id = #{roleId}
    </select>
 
</mapper>