From 6e43ac3b06f272925a87f4193ad238acc9f32f49 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 06 Feb 2026 17:32:30 +0800
Subject: [PATCH] mysql调整成pgsql
---
drone-service/drone-system/src/main/java/org/sxkj/system/mapper/RoleMapper.xml | 31 ++++++++++++++++---------------
1 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/drone-service/drone-system/src/main/java/org/sxkj/system/mapper/RoleMapper.xml b/drone-service/drone-system/src/main/java/org/sxkj/system/mapper/RoleMapper.xml
index be835d4..1305119 100644
--- a/drone-service/drone-system/src/main/java/org/sxkj/system/mapper/RoleMapper.xml
+++ b/drone-service/drone-system/src/main/java/org/sxkj/system/mapper/RoleMapper.xml
@@ -62,27 +62,28 @@
<!--角色查询-->
<select id="getRoleList" resultType="org.sxkj.system.entity.Role">
+ WITH RECURSIVE role_hierarchy AS (
+ SELECT id, parent_id, role_name, role_alias
+ FROM blade_role
+ WHERE id = #{roleParam.roleId} AND is_deleted = 0
+ UNION ALL
+ SELECT r.id, r.parent_id, r.role_name, r.role_alias
+ FROM blade_role r
+ JOIN role_hierarchy rh ON r.parent_id = rh.id
+ WHERE r.is_deleted = 0
+ )
SELECT br.* FROM blade_role br
- inner join (
- SELECT * FROM
- (
- SELECT t1.*,IF( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild FROM
- ( SELECT id, parent_id,role_name,role_alias FROM blade_role t where is_deleted =0 ORDER BY parent_id, id ) t1,
- ( SELECT @pids := #{roleParam.roleId} ) t2
- ) t3
- WHERE id != 1123598816738675201
+ INNER JOIN role_hierarchy rh ON br.id = rh.id
+ WHERE br.id != 1123598816738675201
<if test="roleParam.roleName!=null and roleParam.roleName!=''">
- and role_name like concat('%',#{roleParam.roleName},'%')
+ AND br.role_name LIKE concat('%',#{roleParam.roleName},'%')
</if>
<if test="roleParam.roleAlias!=null and roleParam.roleAlias!=''">
- and role_alias like concat('%',#{roleParam.roleAlias},'%')
+ AND br.role_alias LIKE concat('%',#{roleParam.roleAlias},'%')
</if>
- ) t4 on br.id = t4.id
<if test="roleParam.isNowLevel==0">
- union all
- (
- SELECT * FROM blade_role where id = #{roleParam.roleId}
- )
+ UNION ALL
+ SELECT * FROM blade_role WHERE id = #{roleParam.roleId} AND is_deleted = 0
</if>
</select>
--
Gitblit v1.9.3