MenuMapper.xml
4.94 KB
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
137
138
139
140
141
142
143
144
145
<?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.thingsboard.server.dao.yunteng.mapper.MenuMapper">
<resultMap type="org.thingsboard.server.common.data.yunteng.dto.MenuDTO" id="menuDTOMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="parentId" column="parent_id"/>
<result property="path" column="path"/>
<result property="type" column="type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
<result property="permission" column="permission"/>
<result property="sort" column="sort"/>
<result property="tenantId" column="tenant_id"/>
<result property="component" column="component"/>
<result property="meta" column="meta"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="alias" column="alias"/>
<result property="redirect" column="redirect"/>
<result property="caseSensitive" column="case_sensitive"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="menuDTOMapColumn">
id,
parent_id,
path,
type,
permission,
sort,
component,
name,
meta,
alias,
redirect,
case_sensitive,
create_time,
update_time,
tenant_id
</sql>
<select id="selectTenantMenu" resultMap="menuDTOMap">
SELECT
<include refid="menuDTOMapColumn">
</include>
FROM sys_menu
WHERE id IN (SELECT menu_id FROM sys_tenant_menu WHERE tenant_id = #{tenantId})
</select>
<select id="selectMyMenu" resultMap="menuDTOMap">
SELECT
<include refid="menuDTOMapColumn">
</include>
FROM sys_menu
WHERE id IN (SELECT menu_id
FROM sys_role_menu
WHERE role_id IN (SELECT id FROM sys_role WHERE id in (SELECT role_id FROM sys_user_role WHERE user_id
= #{userId}) AND enabled=true))
</select>
<delete id="deleteTenantMenuMappingByMenuIds">
DELETE FROM sys_tenant_menu WHERE menu_id IN
<foreach collection="menuIds" item="menuId" open="(" separator="," close=")">
#{menuId}
</foreach>
</delete>
<select id="selectTenantMenuIds" resultType="java.lang.String">
SELECT menu_id
FROM sys_tenant_menu
WHERE tenant_id = #{tenantId}
</select>
<select id="selectRoleMenuIds" resultType="java.lang.String">
SELECT menu_id
FROM sys_role_menu
WHERE role_id = #{roleId}
</select>
<insert id="addMenuToTenant">
INSERT INTO sys_tenant_menu(menu_id , tenant_id) VALUES
<foreach collection="menuIds" item="menuId" index="index" separator=",">
(#{menuId},#{tenantId})
</foreach>
</insert>
<insert id="addMenuToRole">
INSERT INTO sys_role_menu(menu_id , role_id) VALUES
<foreach collection="menuIds" item="menuId" index="index" separator=",">
(#{menuId},#{roleId})
</foreach>
</insert>
<delete id="removeMenuFromTenant">
DELETE FROM sys_tenant_menu WHERE
tenant_id =#{tenantId} AND menu_id IN
<foreach collection="menuIds" item="menuId" open="(" separator="," close=")">
#{menuId}
</foreach>
</delete>
<delete id="removeMenuFromRole">
DELETE FROM sys_role_menu WHERE
role_id =#{roleId} AND menu_id IN
<foreach collection="menuIds" item="menuId" open="(" separator="," close=")">
#{menuId}
</foreach>
</delete>
<select id="getAllIdsByTenantId" resultType="java.lang.String">
SELECT id FROM sys_menu WHERE tenant_id IN
<foreach collection="tenantIds" item="tenantId" open="(" separator="," close=")">
#{tenantId}
</foreach>
</select>
<select id="getAllPermission" resultType="java.lang.String">
SELECT permission
FROM sys_menu
</select>
<select id="getAllPermissionsByTenantId" resultType="java.lang.String">
SELECT permission
FROM sys_menu
WHERE id IN
(SELECT menu_id FROM sys_tenant_menu WHERE tenant_id = #{tenantId})
</select>
<select id="getAllPermissionsByUserId" resultType="java.lang.String">
SELECT permission
FROM sys_menu
WHERE id IN
(SELECT menu_id
FROM sys_role_menu
WHERE role_id IN (
SELECT role_id
FROM sys_user_role
WHERE user_id = #{userId}))
</select>
<select id="selectSysAdminMenu" resultMap="menuDTOMap">
SELECT
<include refid="menuDTOMapColumn">
</include>
FROM sys_menu
WHERE type = 'SYSADMIN'
</select>
</mapper>