Skip to content

Commit 0e11013

Browse files
committed
feat: framework 模块添加 oracle 数据库支持
1 parent 9bf2af3 commit 0e11013

8 files changed

Lines changed: 438 additions & 0 deletions

File tree

framework/framework_svc/src/main/resources/mapper/SysApiMapper.xml renamed to framework/framework_svc/src/main/resources/mapper/mysql/SysApiMapper.xml

File renamed without changes.

framework/framework_svc/src/main/resources/mapper/SysMenuMapper.xml renamed to framework/framework_svc/src/main/resources/mapper/mysql/SysMenuMapper.xml

File renamed without changes.

framework/framework_svc/src/main/resources/mapper/SysRoleMapper.xml renamed to framework/framework_svc/src/main/resources/mapper/mysql/SysRoleMapper.xml

File renamed without changes.

framework/framework_svc/src/main/resources/mapper/SysUserMapper.xml renamed to framework/framework_svc/src/main/resources/mapper/mysql/SysUserMapper.xml

File renamed without changes.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3+
<mapper namespace="com.github.cadecode.uniboot.framework.svc.mapper.SysApiMapper">
4+
<resultMap id="SysApiRolesVoMap" type="com.github.cadecode.uniboot.framework.svc.bean.vo.SysApiVo$SysApiRolesResVo">
5+
<result column="id" property="id"/>
6+
<result column="url" property="url"/>
7+
<result column="description" property="description"/>
8+
<result column="create_time" property="createTime"/>
9+
<result column="update_time" property="updateTime"/>
10+
<result column="update_user" property="updateUser"/>
11+
<result column="r_code" property="roles" typeHandler="ObjToStrTypeHandler"/>
12+
</resultMap>
13+
<select id="selectRolesVoByApiIds" resultMap="SysApiRolesVoMap">
14+
SELECT sa.*, JSON_ARRAYAGG(sr.code) r_code
15+
FROM sys_api sa
16+
LEFT JOIN sys_role_api sra ON sra.api_id = sa.id
17+
LEFT JOIN sys_role sr ON sra.role_id = sr.id
18+
<if test="apiIds != null and apiIds.size > 0">
19+
WHERE sa.id IN (
20+
<foreach collection="apiIds" item="apiId" separator=",">
21+
#{apiId}
22+
</foreach>
23+
)
24+
</if>
25+
GROUP BY sa.id, sa.url, sa.description, sa.create_time, sa.update_time, sa.update_user
26+
ORDER BY sa.url
27+
</select>
28+
<select id="selectRolesVo" resultMap="SysApiRolesVoMap">
29+
SELECT sa.*, JSON_ARRAYAGG(sr.code) r_code
30+
FROM sys_api sa
31+
LEFT JOIN sys_role_api sra ON sra.api_id = sa.id
32+
LEFT JOIN sys_role sr ON sra.role_id = sr.id
33+
<if test="req != null">
34+
<where>
35+
<if test="req.url != null and req.url.length > 0">
36+
<bind name="bindUrl" value="'%' + req.url + '%'"/>
37+
sa.url like #{bindUrl}
38+
</if>
39+
<if test="req.description != null and req.description.length > 0">
40+
<bind name="bindDescription" value="'%' + req.description + '%'"/>
41+
AND sa.description like #{bindDescription}
42+
</if>
43+
</where>
44+
</if>
45+
GROUP BY sa.id, sa.url, sa.description, sa.create_time, sa.update_time, sa.update_user
46+
ORDER BY sa.url
47+
</select>
48+
</mapper>
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3+
<mapper namespace="com.github.cadecode.uniboot.framework.svc.mapper.SysMenuMapper">
4+
<resultMap id="SysMenuRolesVoMap"
5+
type="com.github.cadecode.uniboot.framework.svc.bean.vo.SysMenuVo$SysMenuRolesResVo">
6+
<result column="id" property="id"/>
7+
<result column="parent_id" property="parentId"/>
8+
<result column="route_name" property="routeName"/>
9+
<result column="route_path" property="routePath"/>
10+
<result column="component_path" property="componentPath"/>
11+
<result column="menu_name" property="menuName"/>
12+
<result column="leaf_flag" property="leafFlag"/>
13+
<result column="icon" property="icon"/>
14+
<result column="order_num" property="orderNum"/>
15+
<result column="enable_flag" property="enableFlag" typeHandler="BoolToIntTypeHandler"/>
16+
<result column="create_time" property="createTime"/>
17+
<result column="update_time" property="updateTime"/>
18+
<result column="update_user" property="updateUser"/>
19+
<result column="r_code" property="roles" typeHandler="ObjToStrTypeHandler"/>
20+
</resultMap>
21+
<select id="selectByRoles" resultType="com.github.cadecode.uniboot.framework.svc.bean.po.SysMenu">
22+
SELECT DISTINCT sm.*
23+
FROM sys_menu sm LEFT JOIN sys_role_menu srm ON sm.id = srm.menu_id
24+
LEFT JOIN sys_role sr ON srm.role_id = sr.id
25+
where sm.enable_flag = 1
26+
<foreach collection="roleCodes" item="roleCode" separator="," open="and sr.code IN (" close=")">
27+
#{roleCode}
28+
</foreach>
29+
ORDER BY sm.order_num
30+
</select>
31+
<select id="selectRolesVo" resultMap="SysMenuRolesVoMap">
32+
SELECT sm.id, sm.parent_id, sm.route_name, TO_CHAR(sm.route_path) as route_path, TO_CHAR(sm.component_path) as
33+
component_path, sm.menu_name,
34+
sm.leaf_flag, TO_CHAR(sm.icon) as icon, sm.order_num, sm.enable_flag, sm.hidden_flag, sm.cache_flag,
35+
sm.create_time, sm.update_time,
36+
sm.update_user, JSON_ARRAYAGG(sr.code) r_code
37+
FROM sys_menu sm
38+
LEFT JOIN sys_role_menu srm ON srm.menu_id = sm.id
39+
LEFT JOIN sys_role sr ON srm.role_id = sr.id
40+
<if test="req != null">
41+
<where>
42+
<if test="req.routeName != null and req.routeName.length > 0">
43+
<bind name="bindRouteName" value="'%' + req.routeName + '%'"/>
44+
AND sm.route_name like #{bindRouteName}
45+
</if>
46+
<if test="req.menuName != null and req.menuName.length > 0">
47+
<bind name="bindMenuName" value="'%' + req.menuName + '%'"/>
48+
AND sm.menu_name like #{bindMenuName }
49+
</if>
50+
<if test="req.enableFlag != null">
51+
AND sm.enable_flag = #{req.enableFlag, typeHandler=BoolToIntTypeHandler}
52+
</if>
53+
<if test="req.hiddenFlag != null">
54+
AND sm.hidden_flag = #{req.hiddenFlag, typeHandler=BoolToIntTypeHandler}
55+
</if>
56+
<if test="req.roleIdList != null and req.roleIdList.size > 0 ">
57+
AND sr.id in (
58+
<foreach collection="req.roleIdList" item="id" separator=",">
59+
#{id}
60+
</foreach>
61+
)
62+
</if>
63+
</where>
64+
</if>
65+
GROUP BY sm.id, sm.parent_id, sm.route_name, TO_CHAR(sm.route_path), TO_CHAR(sm.component_path), sm.menu_name,
66+
sm.leaf_flag, TO_CHAR(sm.icon),
67+
sm.order_num, sm.enable_flag, sm.hidden_flag, sm.cache_flag, sm.create_time, sm.update_time, sm.update_user
68+
<choose>
69+
<when test="req.hiddenFlag != null and req.hiddenFlag">
70+
ORDER BY sm.create_time DESC
71+
</when>
72+
<otherwise>
73+
ORDER BY sm.order_num
74+
</otherwise>
75+
</choose>
76+
</select>
77+
<select id="selectRolesVoByMenuIds" resultMap="SysMenuRolesVoMap">
78+
SELECT sm.id, sm.parent_id, sm.route_name, TO_CHAR(sm.route_path) as route_path, TO_CHAR(sm.component_path) as
79+
component_path, sm.menu_name,
80+
sm.leaf_flag, TO_CHAR(sm.icon) as icon, sm.order_num, sm.enable_flag, sm.hidden_flag, sm.cache_flag,
81+
sm.create_time, sm.update_time,
82+
sm.update_user, JSON_ARRAYAGG(sr.code) r_code
83+
FROM sys_menu sm
84+
LEFT JOIN sys_role_menu srm ON srm.menu_id = sm.id
85+
LEFT JOIN sys_role sr ON srm.role_id = sr.id
86+
<if test="menuIds != null and menuIds.size > 0">
87+
WHERE sm.id IN (
88+
<foreach collection="menuIds" item="id" separator=",">
89+
#{id}
90+
</foreach>
91+
)
92+
</if>
93+
GROUP BY sm.id, sm.parent_id, sm.route_name, TO_CHAR(sm.route_path), TO_CHAR(sm.component_path), sm.menu_name,
94+
sm.leaf_flag, TO_CHAR(sm.icon),
95+
sm.order_num, sm.enable_flag, sm.hidden_flag, sm.cache_flag, sm.create_time, sm.update_time, sm.update_user
96+
ORDER BY sm.create_time DESC
97+
</select>
98+
</mapper>
Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3+
<mapper namespace="com.github.cadecode.uniboot.framework.svc.mapper.SysRoleMapper">
4+
<resultMap id="SysRoleUnionVoMap"
5+
type="com.github.cadecode.uniboot.framework.svc.bean.vo.SysRoleVo$SysRoleUnionResVo">
6+
<result column="id" property="id"/>
7+
<result column="code" property="code"/>
8+
<result column="name" property="name"/>
9+
<result column="description" property="description"/>
10+
<result column="create_time" property="createTime"/>
11+
<result column="update_time" property="updateTime"/>
12+
<result column="update_user" property="updateUser"/>
13+
<result column="m_id" property="menus" typeHandler="ObjToStrTypeHandler"/>
14+
<result column="a_id" property="apis" typeHandler="ObjToStrTypeHandler"/>
15+
</resultMap>
16+
<select id="selectByUserIds" resultType="com.github.cadecode.uniboot.framework.svc.bean.po.SysRole">
17+
SELECT *
18+
FROM sys_role_user ru
19+
INNER JOIN sys_role r ON ru.role_id = r.id
20+
<if test="userIds != null and userIds.size > 0">
21+
WHERE ru.user_id IN (
22+
<foreach collection="userIds" item="id" separator=",">
23+
#{id}
24+
</foreach>
25+
)
26+
</if>
27+
</select>
28+
<select id="selectByMenuIds" resultType="com.github.cadecode.uniboot.framework.svc.bean.po.SysRole">
29+
SELECT *
30+
FROM sys_role_menu rm
31+
INNER JOIN sys_role r ON rm.role_id = r.id
32+
<if test="menuIds != null and menuIds.size > 0">
33+
WHERE rm.menu_id IN (
34+
<foreach collection="menuIds" item="id" separator=",">
35+
#{id}
36+
</foreach>
37+
)
38+
</if>
39+
</select>
40+
<select id="selectByApiIds" resultType="com.github.cadecode.uniboot.framework.svc.bean.po.SysRole">
41+
SELECT *
42+
FROM sys_role_api ra
43+
INNER JOIN sys_role r ON ra.role_id = r.id
44+
<if test="apiIds != null and apiIds.size > 0">
45+
WHERE ra.api_id IN (
46+
<foreach collection="apiIds" item="id" separator=",">
47+
#{id}
48+
</foreach>
49+
)
50+
</if>
51+
</select>
52+
<select id="selectUnionVo" resultMap="SysRoleUnionVoMap">
53+
SELECT sr.id, sr.code, sr.name, sr.description, sr.create_time, sr.update_time, sr.update_user,
54+
JSON_ARRAYAGG(sm.id) m_id, JSON_ARRAYAGG(sa.id) a_id
55+
FROM sys_role sr
56+
LEFT JOIN sys_role_menu srm ON srm.role_id = sr.id
57+
LEFT JOIN sys_role_api sra ON sra.role_id = sr.id
58+
LEFT JOIN sys_menu sm ON srm.menu_id = sm.id
59+
LEFT JOIN sys_api sa ON sra.api_id = sa.id
60+
<if test="req != null">
61+
<where>
62+
<if test="req.code != null and req.code.length > 0">
63+
<bind name="bindCode" value="'%' + req.code + '%'"/>
64+
sr.code like #{bindCode}
65+
</if>
66+
<if test="req.name != null and req.name.length > 0">
67+
<bind name="bindName" value="'%' + req.name + '%'"/>
68+
AND sr.name like #{bindName}
69+
</if>
70+
</where>
71+
</if>
72+
GROUP BY sr.id, sr.code, sr.name, sr.description, sr.create_time, sr.update_time, sr.update_user
73+
ORDER BY sr.code
74+
</select>
75+
<select id="selectUnionVoByRoleIds" resultMap="SysRoleUnionVoMap">
76+
SELECT sr.id, sr.code, sr.name, sr.description, sr.create_time, sr.update_time, sr.update_user,
77+
JSON_ARRAYAGG(sm.id) m_id, JSON_ARRAYAGG(sa.id) a_id
78+
FROM sys_role sr
79+
LEFT JOIN sys_role_menu srm ON srm.role_id = sr.id
80+
LEFT JOIN sys_role_api sra ON sra.role_id = sr.id
81+
LEFT JOIN sys_menu sm ON srm.menu_id = sm.id
82+
LEFT JOIN sys_api sa ON sra.api_id = sa.id
83+
<if test="roleIds != null and roleIds.size > 0">
84+
WHERE sr.id IN (
85+
<foreach collection="roleIds" item="roleId" separator=",">
86+
#{roleId}
87+
</foreach>
88+
)
89+
</if>
90+
GROUP BY sr.id, sr.code, sr.name, sr.description, sr.create_time, sr.update_time, sr.update_user
91+
ORDER BY sr.code
92+
</select>
93+
<delete id="deleteRoleUserByUserIds">
94+
DELETE FROM sys_role_user ru
95+
WHERE ru.user_id IN (
96+
<foreach collection="userIds" item="id" separator=",">
97+
#{id}
98+
</foreach>
99+
)
100+
</delete>
101+
<delete id="deleteRoleUserByRoleIds">
102+
DELETE FROM sys_role_user ru
103+
WHERE ru.role_id IN (
104+
<foreach collection="roleIds" item="id" separator=",">
105+
#{id}
106+
</foreach>
107+
)
108+
</delete>
109+
<delete id="deleteRoleMenuByMenuIds">
110+
DELETE FROM sys_role_menu rm
111+
WHERE rm.menu_id IN (
112+
<foreach collection="menuIds" item="id" separator=",">
113+
#{id}
114+
</foreach>
115+
)
116+
</delete>
117+
<delete id="deleteRoleMenuByRoleIds">
118+
DELETE FROM sys_role_menu rm
119+
WHERE rm.role_id IN (
120+
<foreach collection="roleIds" item="id" separator=",">
121+
#{id}
122+
</foreach>
123+
)
124+
</delete>
125+
<delete id="deleteRoleApiByApiIds">
126+
DELETE FROM sys_role_api ra
127+
WHERE ra.api_id IN (
128+
<foreach collection="apiIds" item="id" separator=",">
129+
#{id}
130+
</foreach>
131+
)
132+
</delete>
133+
<delete id="deleteRoleApiByRoleIds">
134+
DELETE FROM sys_role_api ra
135+
WHERE ra.role_id IN (
136+
<foreach collection="roleIds" item="id" separator=",">
137+
#{id}
138+
</foreach>
139+
)
140+
</delete>
141+
<delete id="deleteRoleUser">
142+
DELETE FROM sys_role_user ru
143+
WHERE (ru.user_id, ru.role_id) IN (
144+
<foreach collection="list" item="el" separator=",">
145+
(#{el.id}, #{el.roleId})
146+
</foreach>
147+
)
148+
</delete>
149+
<delete id="deleteRoleMenu">
150+
DELETE FROM sys_role_menu rm
151+
WHERE (rm.menu_id, rm.role_id) IN (
152+
<foreach collection="list" item="el" separator=",">
153+
(#{el.id}, #{el.roleId})
154+
</foreach>
155+
)
156+
</delete>
157+
<delete id="deleteRoleApi">
158+
DELETE FROM sys_role_api ra
159+
WHERE (ra.api_id, ra.role_id) IN (
160+
<foreach collection="list" item="el" separator=",">
161+
(#{el.id}, #{el.roleId})
162+
</foreach>
163+
)
164+
</delete>
165+
<insert id="insertRoleUser">
166+
INSERT INTO sys_role_user (user_id, role_id)
167+
VALUES
168+
<foreach collection="list" item="el" separator=",">
169+
(#{el.id}, #{el.roleId})
170+
</foreach>
171+
</insert>
172+
<insert id="insertRoleMenu">
173+
INSERT INTO sys_role_menu (menu_id, role_id)
174+
VALUES
175+
<foreach collection="list" item="el" separator=",">
176+
(#{el.id}, #{el.roleId})
177+
</foreach>
178+
</insert>
179+
<insert id="insertRoleApi">
180+
INSERT INTO sys_role_api (api_id, role_id)
181+
VALUES
182+
<foreach collection="list" item="el" separator=",">
183+
(#{el.id}, #{el.roleId})
184+
</foreach>
185+
</insert>
186+
187+
</mapper>

0 commit comments

Comments
 (0)