From 292ee9532758985fb944edc5c7324f7a33d178e6 Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Thu, 06 Jun 2024 10:03:45 +0800
Subject: [PATCH] 角色查询修改

---
 blade-auth/src/main/java/org/springblade/system/controller/RoleController.java    |   12 ++++++
 blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.xml             |   26 +++++++++++++
 blade-auth/src/main/java/org/springblade/common/cache/SysCache.java               |    3 +
 blade-auth/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java |   14 +++++++
 blade-auth/src/main/java/org/springblade/system/vo/RoleParam.java                 |   39 +++++++++++++++++++
 blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.java            |    9 ++++
 blade-auth/src/main/java/org/springblade/system/wrapper/RoleWrapper.java          |    2 
 blade-auth/src/main/java/org/springblade/system/service/IRoleService.java         |    8 ++++
 8 files changed, 111 insertions(+), 2 deletions(-)

diff --git a/blade-auth/src/main/java/org/springblade/common/cache/SysCache.java b/blade-auth/src/main/java/org/springblade/common/cache/SysCache.java
index 869af78..fe5ed94 100644
--- a/blade-auth/src/main/java/org/springblade/common/cache/SysCache.java
+++ b/blade-auth/src/main/java/org/springblade/common/cache/SysCache.java
@@ -229,7 +229,8 @@
 	 * @return Role
 	 */
 	public static Role getRole(Long id) {
-		return CacheUtil.get(SYS_CACHE, ROLE_ID, id, () -> roleService.getById(id));
+//		return CacheUtil.get(SYS_CACHE, ROLE_ID, id, () -> roleService.getById(id));
+		return roleService.getById(id);
 	}
 
 	/**
diff --git a/blade-auth/src/main/java/org/springblade/system/controller/RoleController.java b/blade-auth/src/main/java/org/springblade/system/controller/RoleController.java
index 6de475d..ff1cce0 100644
--- a/blade-auth/src/main/java/org/springblade/system/controller/RoleController.java
+++ b/blade-auth/src/main/java/org/springblade/system/controller/RoleController.java
@@ -19,6 +19,7 @@
 import org.springblade.system.user.cache.UserCache;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.vo.GrantVO;
+import org.springblade.system.vo.RoleParam;
 import org.springblade.system.vo.RoleVO;
 import org.springblade.system.wrapper.RoleWrapper;
 import org.springframework.web.bind.annotation.*;
@@ -151,4 +152,15 @@
 		return R.data(list);
 	}
 
+	/**
+	 * 自定义列表(只获取当前角色下级角色)
+	 * @param roleParam
+	 * @return
+	 */
+	@GetMapping("/getRoleList")
+	public R<List<RoleVO>> getRoleList(RoleParam roleParam) {
+		List<Role> list = roleService.getRoleList(roleParam);
+		return R.data(RoleWrapper.build().listNodeVO(list));
+	}
+
 }
diff --git a/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.java b/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.java
index 66b1b73..493d35f 100644
--- a/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.java
+++ b/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.java
@@ -18,7 +18,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.system.entity.Role;
+import org.springblade.system.vo.RoleParam;
 import org.springblade.system.vo.RoleVO;
 
 import java.util.List;
@@ -64,4 +66,11 @@
 	 */
 	List<String> getRoleAliases(Long[] ids);
 
+	/**
+	 * 自定义列表(只获取当前角色下级角色)
+	 *
+	 * @param roleParam
+	 * @return
+	 */
+	List<Role> getRoleList(@Param("roleParam") RoleParam roleParam);
 }
diff --git a/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.xml b/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.xml
index 0551a59..45f6d22 100644
--- a/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.xml
+++ b/blade-auth/src/main/java/org/springblade/system/mapper/RoleMapper.xml
@@ -60,4 +60,30 @@
         and is_deleted = 0
     </select>
 
+    <!--角色查询-->
+    <select id="getRoleList" resultType="org.springblade.system.entity.Role">
+        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
+        <if test="roleParam.roleName!=null and roleParam.roleName!=''">
+            and role_name like concat('%',#{roleParam.roleName},'%')
+        </if>
+        <if test="roleParam.roleAlias!=null and roleParam.roleAlias!=''">
+            and 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}
+            )
+        </if>
+    </select>
+
 </mapper>
diff --git a/blade-auth/src/main/java/org/springblade/system/service/IRoleService.java b/blade-auth/src/main/java/org/springblade/system/service/IRoleService.java
index adbe3a1..b503ca2 100644
--- a/blade-auth/src/main/java/org/springblade/system/service/IRoleService.java
+++ b/blade-auth/src/main/java/org/springblade/system/service/IRoleService.java
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.system.entity.Role;
+import org.springblade.system.vo.RoleParam;
 import org.springblade.system.vo.RoleVO;
 
 import javax.validation.constraints.NotEmpty;
@@ -109,4 +110,11 @@
 	 */
 	boolean removeRole(String ids);
 
+	/**
+	 * 自定义列表(只获取当前角色下级角色)
+	 * @param roleParam
+	 * @return
+	 */
+	List<Role> getRoleList(RoleParam roleParam);
+
 }
diff --git a/blade-auth/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java b/blade-auth/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java
index 02d3ebb..86454ed 100644
--- a/blade-auth/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java
+++ b/blade-auth/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java
@@ -35,6 +35,7 @@
 import org.springblade.system.service.IRoleMenuService;
 import org.springblade.system.service.IRoleScopeService;
 import org.springblade.system.service.IRoleService;
+import org.springblade.system.vo.RoleParam;
 import org.springblade.system.vo.RoleVO;
 import org.springblade.system.wrapper.RoleWrapper;
 import org.springframework.stereotype.Service;
@@ -227,4 +228,17 @@
 		return removeByIds(Func.toLongList(ids));
 	}
 
+
+	/**
+	 * 自定义列表(只获取当前角色下级角色)
+	 *
+	 * @param roleParam
+	 * @return
+	 */
+	@Override
+	public List<Role> getRoleList(RoleParam roleParam) {
+		roleParam.setRoleId(AuthUtil.getUser().getRoleId());
+		return baseMapper.getRoleList(roleParam);
+	}
+
 }
diff --git a/blade-auth/src/main/java/org/springblade/system/vo/RoleParam.java b/blade-auth/src/main/java/org/springblade/system/vo/RoleParam.java
new file mode 100644
index 0000000..28bd9ce
--- /dev/null
+++ b/blade-auth/src/main/java/org/springblade/system/vo/RoleParam.java
@@ -0,0 +1,39 @@
+package org.springblade.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.system.entity.Role;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "RoleVO对象", description = "RoleVO对象")
+public class RoleParam extends Role {
+	private static final long serialVersionUID = 1L;
+
+
+	/**
+	 * 是否返回当前层级 0:是  1:否
+	 */
+	private Integer isNowLevel;
+
+	/**
+	 * 角色id
+	 */
+	private String roleId;
+
+	/**
+	 * 角色名称
+	 */
+	private String roleName;
+
+	/**
+	 * 角色别名
+	 */
+	private String roleAlias;
+}
diff --git a/blade-auth/src/main/java/org/springblade/system/wrapper/RoleWrapper.java b/blade-auth/src/main/java/org/springblade/system/wrapper/RoleWrapper.java
index 33050f0..f41e8f9 100644
--- a/blade-auth/src/main/java/org/springblade/system/wrapper/RoleWrapper.java
+++ b/blade-auth/src/main/java/org/springblade/system/wrapper/RoleWrapper.java
@@ -21,7 +21,7 @@
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.system.cache.SysCache;
+import org.springblade.common.cache.SysCache;
 import org.springblade.system.entity.Role;
 import org.springblade.system.vo.RoleVO;
 

--
Gitblit v1.9.3