From 63b484f3fceb54cf545b3c8b722a6f0fceae1689 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 02 Apr 2026 10:54:08 +0800
Subject: [PATCH] sql改造其他模块改造
---
drone-service/drone-system/src/main/java/org/sxkj/system/mapper/RoleMapper.xml | 37 ++++++++++++++++++++++---------------
1 files changed, 22 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 1c91d53..c17eba9 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
@@ -65,27 +65,34 @@
<!--角色查询-->
<select id="getRoleList" resultType="org.sxkj.system.entity.Role">
+ WITH RECURSIVE role_tree AS (
+ SELECT id, parent_id, role_name, role_alias
+ FROM blade_role
+ WHERE id = #{roleParam.roleId} AND is_deleted = 0
+ UNION ALL
+ SELECT br.id, br.parent_id, br.role_name, br.role_alias
+ FROM blade_role br
+ INNER JOIN role_tree rt ON br.parent_id = rt.id
+ WHERE br.is_deleted = 0 AND br.id != 1123598816738675201
+ )
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_tree rt ON br.id = rt.id
<if test="roleParam.roleName!=null and roleParam.roleName!=''">
- and role_name like concat('%',#{roleParam.roleName},'%')
+ WHERE br.role_name like concat('%',#{roleParam.roleName},'%')
</if>
<if test="roleParam.roleAlias!=null and roleParam.roleAlias!=''">
- and role_alias like concat('%',#{roleParam.roleAlias},'%')
+ <choose>
+ <when test="roleParam.roleName!=null and roleParam.roleName!=''">
+ AND br.role_alias like concat('%',#{roleParam.roleAlias},'%')
+ </when>
+ <otherwise>
+ WHERE br.role_alias like concat('%',#{roleParam.roleAlias},'%')
+ </otherwise>
+ </choose>
</if>
- ) t4 on br.id = t4.id::VARCHAR
<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}
</if>
</select>
--
Gitblit v1.9.3