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