Blame view

src/main/resources/mybatis/system/MenuMapper.xml 8.93 KB
tangying authored
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
<?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.huaheng.pc.system.menu.mapper.MenuMapper">

	<resultMap type="com.huaheng.pc.system.menu.domain.Menu" id="MenuResult">
		<id     property="id"         column="id"        />
		<result property="menuName"       column="menuName"      />
		<result property="parentName"     column="parent_name"    />
		<result property="parentId"       column="parentId"      />
		<result property="orderNum"       column="orderNum"      />
		<result property="url"            column="url"            />
		<result property="menuType"       column="menuType"      />
		<result property="visible"        column="visible"        />
        <result property="menuMobile"        column="menuMobile"        />
		<result property="perms"          column="perms"          />
		<result property="icon"           column="icon"           />
		<result property="createBy"       column="createBy"      />
		<result property="createTime"     column="createTime"    />
		<result property="updateTime"     column="updateTime"    />
		<result property="updateBy"       column="updateBy"      />
		<result property="remark"         column="remark"         />
	</resultMap>

	<sql id="selectMenuVo">
        select id, menuName, parentId, orderNum, url, menuType, visible, menuMobile, perms, icon, createBy, createTime from sys_menu
    </sql>

	<select id="selectPCMenusByUserId" resultMap="MenuResult">
		select distinct m.id, m.parentId, m.menuName, m.url, m.perms , m.menuType, m.icon, m.orderNum, m.createTime
		from sys_menu m
			 left join sys_role_menu rm on m.id = rm.menuId
			 left join sys_user_role ur on rm.roleId = ur.roleId
			 LEFT JOIN sys_role ro on ur.roleId = ro.id
36
		where ur.userId = #{userId} AND m.warehouseCode = #{warehouseCode} and m.menuType in ('M', 'C')
tangying authored
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
			   AND m.visible = 1 AND ro.enable = 1 AND m.menuMobile = false
		order by m.orderNum
	</select>

	<select id="selectMenusByUserId" resultMap="MenuResult">
		select distinct m.id, m.parentId, m.menuName, m.url, m.perms , m.menuType, m.icon, m.orderNum, m.createTime
		from sys_menu m
			 left join sys_role_menu rm on m.id = rm.menuId and warehouseCode=''
			 left join sys_user_role ur on rm.roleId = ur.roleId
			 LEFT JOIN sys_role ro on ur.roleId = ro.id
		where ur.userId = #{userId} and m.menuType in ('M', 'C')
			   AND m.visible = 1 AND ro.enable = 1 AND m.menuMobile = false
		order by m.orderNum
	</select>

	<select id="selectPermsByUserId" resultType="java.lang.String">
		select distinct m.perms
		from sys_menu m
			 left join sys_role_menu rm on m.id = rm.menuId
			 left join sys_user_role ur on rm.roleId = ur.roleId
57
		where ur.userId = #{userId} AND m.warehouseCode = #{warehouseCode}
tangying authored
58
59
	</select>
60
	<select id="selectPermsBywarehouseCode" resultType="java.lang.String">
tangying authored
61
62
		select distinct perms
		from sys_menu
63
		where warehouseCode = #{warehouseCode}
tangying authored
64
65
66
67
68
69
	</select>

	<select id="selectMenuTree" resultType="java.lang.String">
		select concat(m.id, m.perms) as perms
		from sys_menu m
			left join sys_role_menu rm on m.id = rm.menuId
70
		where rm.roleId = #{roleId} AND m.warehouseCode = #{warehouseCode}
tangying authored
71
72
73
74
75
76
		order by m.parentId, m.orderNum
	</select>

	<select id="selectMenuList" resultMap="MenuResult">
        <include refid="selectMenuVo"/>
        <where>
77
78
			<if test="warehouseCode != null">
				AND warehouseCode = #{warehouseCode}
tangying authored
79
80
81
82
			</if>
			<if test="menuName != null and menuName != ''">
				AND menuName like concat('%', #{menuName}, '%')
			</if>
游杰 authored
83
84
85
86
87
88
			<if test="parentId != null and parentId != ''">
				AND parentId =  #{parentId}
			</if>
			<if test="perms != null and perms != ''">
				AND perms =  #{perms}
			</if>
tangying authored
89
90
91
92
93
94
			<if test="visible != null">
				AND visible = #{visible}
			</if>
		</where>
        order by orderNum
    </select>
游杰 authored
95
96
97
98
99
100
101

	<select id="selectMenu" resultMap="MenuResult">
		select * from sys_menu
		<where>
			<if test="perms != null">
				AND perms = #{perms}
			</if>
游杰 authored
102
103
			and menuName = #{menuName}  and  warehouseCode=#{warehouseCode} and  url=#{url}
			and  orderNum=#{orderNum}
游杰 authored
104
105
106
		</where>
		limit 1
	</select>
107
tangying authored
108
	<delete id="deleteMenuById">
109
	    delete from sys_menu where id = #{id} or parentId = #{id}  AND warehouseCode = #{warehouseCode}
tangying authored
110
	</delete>
111
tangying authored
112
113
114
115
	<select id="selectMenuById" resultMap="MenuResult">
		SELECT t.id, t.parentId, t.menuName, t.orderNum, t.url, t.menuType, t.visible, t.menuMobile, t.perms, t.icon, t.remark,
			(SELECT menuName FROM sys_menu WHERE id = t.parentId) parent_name
		FROM sys_menu t
116
		where t.id = #{id}  AND t.warehouseCode = #{warehouseCode}
tangying authored
117
	</select>
118
tangying authored
119
	<select id="selectCountMenuByParentId" resultType="java.lang.Integer">
120
	    select count(1) from sys_menu where parentId=#{parentId}  AND warehouseCode = #{warehouseCode}
tangying authored
121
	</select>
122
tangying authored
123
124
	<select id="checkMenuNameUnique"  resultMap="MenuResult">
		<include refid="selectMenuVo"/>
125
		where menuName=#{menuName}  AND warehouseCode=#{warehouseCode} AND menuMobile=#{menuMobile}
tangying authored
126
	</select>
127
tangying authored
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
	<update id="updateMenu">
 		update sys_menu
 		<set>
 			<if test="menuName != null and menuName != ''">menuName = #{menuName},</if>
 			<if test="parentId != null and parentId != 0">parentId = #{parentId},</if>
 			<if test="orderNum != null and orderNum != ''">orderNum = #{orderNum},</if>
 			<if test="url != null and url != ''">url = #{url},</if>
 			<if test="menuType != null and menuType != ''">menuType = #{menuType},</if>
 			<if test="visible != null">visible = #{visible},</if>
			<if test="menuMobile != null">menuMobile = #{menuMobile},</if>
 			<if test="perms !=null and perms != ''">perms = #{perms},</if>
 			<if test="icon !=null and icon != ''">icon = #{icon},</if>
 			<if test="remark != null and remark != ''">remark = #{remark},</if>
 			<if test="updateBy != null and updateBy != ''">updateBy = #{updateBy},</if>
 			updateTime = sysdate()
 		</set>
144
 		where id = #{id} AND warehouseCode = #{warehouseCode}
tangying authored
145
	</update>
146
tangying authored
147
148
149
150
 	<insert id="insertMenu">
 		insert into sys_menu(
		    <if test="warehouseCode != null">warehouseCode,</if>
 			<if test="parentId != null and parentId != 0">parentId,</if>
151
			<if test="parentName != null and parentName != ''">parentName,</if>
tangying authored
152
153
154
155
156
157
158
159
160
161
162
163
164
165
 			<if test="menuName != null and menuName != ''">menuName,</if>
 			<if test="orderNum != null and orderNum != ''">orderNum,</if>
 			<if test="url != null and url != ''">url,</if>
 			<if test="menuType != null and menuType != ''">menuType,</if>
 			<if test="visible != null">visible,</if>
			<if test="menuMobile != null">menuMobile,</if>
 			<if test="perms !=null and perms != ''">perms,</if>
 			<if test="icon != null and icon != ''">icon,</if>
 			<if test="remark != null and remark != ''">remark,</if>
 			<if test="createBy != null and createBy != ''">createBy,</if>
 			createTime
 		)values(
		    <if test="warehouseCode != null">#{warehouseCode},</if>
 			<if test="parentId != null and parentId != 0">#{parentId},</if>
166
			<if test="parentName != null and parentName != ''">#{parentName},</if>
tangying authored
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
 			<if test="menuName != null and menuName != ''">#{menuName},</if>
 			<if test="orderNum != null and orderNum != ''">#{orderNum},</if>
 			<if test="url != null and url != ''">#{url},</if>
 			<if test="menuType != null and menuType != ''">#{menuType},</if>
 			<if test="visible != null">#{visible},</if>
			<if test="menuMobile != null">#{menuMobile},</if>
 			<if test="perms !=null and perms != ''">#{perms},</if>
 			<if test="icon != null and icon != ''">#{icon},</if>
 			<if test="remark != null and remark != ''">#{remark},</if>
 			<if test="createBy != null and createBy != ''">#{createBy},</if>
 			sysdate()
 		)
	</insert>


	<select id="selectMobileMenusByUserId" resultMap="MenuResult">
		select distinct m.id, m.parentId, m.menuName, m.url, m.perms , m.menuType, m.icon, m.orderNum, m.createTime
		from sys_menu m
			 left join sys_role_menu rm on m.id = rm.menuId
			 left join sys_user_role ur on rm.roleId = ur.roleId
			 LEFT JOIN sys_role ro on ur.roleId = ro.id
188
		where ur.userId = #{userId} AND m.warehouseCode = #{warehouseCode}  AND m.visible = 1 AND ro.enable = 1 AND m.menuMobile = true
tangying authored
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
		order by m.orderNum
	</select>

	<select id="selectMenuPageList" resultType="com.huaheng.pc.system.menu.domain.Menu">
        <include refid="selectMenuVo"/>
		where menuType in ('M', 'C')
        <if test="visible != null">
            AND visible = #{visible}
        </if>
        <if test="menuMobile != null">
            AND menuMobile = #{menuMobile}
        </if>
		order by orderNum
	</select>
204
	<insert id="menuCopy">
205
206
		insert into sys_menu(menuName,parentId,parentName,orderNum,url,menuType,menuMobile,visible,perms,icon,warehouseCode,remark, createBy, updateBy)
		select menuName,parentId,parentName,orderNum,url,menuType,menuMobile,visible,perms,icon,#{newCode},remark, #{loginName}, #{loginName} from sys_menu
207
208
209
210
211
212
		where warehouseCode = #{code}

	</insert>

	<update id="updateParentId">
	update sys_menu s
pengcheng authored
213
	inner join sys_menu m on s.warehouseCode=#{code} and s.warehouseCode=m.warehouseCode and s.parentName=m.menuName set s.parentId=m.id
214
215
216

	</update>
tangying authored
217
</mapper>