From fb798e4982a392408b3e8324c69baba0824fe3fd Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 03 Nov 2023 13:44:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml | 1
src/main/java/org/springblade/modules/system/service/IRoleService.java | 8 ++
src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java | 12 ++++
src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml | 27 +++++++++
src/main/java/org/springblade/modules/system/vo/RoleParam.java | 55 ++++++++++++++++++
src/main/java/org/springblade/modules/system/mapper/RoleMapper.java | 8 ++
src/main/java/org/springblade/modules/system/controller/RoleController.java | 13 ++++
src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java | 4
src/main/java/org/springblade/modules/system/controller/TenantController.java | 8 ++
9 files changed, 132 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/controller/RoleController.java b/src/main/java/org/springblade/modules/system/controller/RoleController.java
index 994bd9e..f341124 100644
--- a/src/main/java/org/springblade/modules/system/controller/RoleController.java
+++ b/src/main/java/org/springblade/modules/system/controller/RoleController.java
@@ -39,6 +39,7 @@
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IRoleService;
import org.springblade.modules.system.vo.GrantVO;
+import org.springblade.modules.system.vo.RoleParam;
import org.springblade.modules.system.vo.RoleVO;
import org.springblade.modules.system.wrapper.RoleWrapper;
import org.springframework.web.bind.annotation.*;
@@ -180,4 +181,16 @@
}
+ /**
+ * 自定义列表(只获取当前角色下级角色)
+ * @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/src/main/java/org/springblade/modules/system/controller/TenantController.java b/src/main/java/org/springblade/modules/system/controller/TenantController.java
index 589dc36..70664ad 100644
--- a/src/main/java/org/springblade/modules/system/controller/TenantController.java
+++ b/src/main/java/org/springblade/modules/system/controller/TenantController.java
@@ -29,6 +29,7 @@
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
@@ -105,9 +106,12 @@
@ApiOperationSupport(order = 3)
@ApiOperation(value = "下拉数据源", notes = "传入tenant")
@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
- public R<List<Tenant>> select(Tenant tenant, BladeUser bladeUser) {
+ public R<List<Tenant>> select() {
+ BladeUser user = AuthUtil.getUser();
+ Tenant tenant = new Tenant();
+ tenant.setTenantId(AuthUtil.getTenantId());
QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant);
- List<Tenant> list = tenantService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+ List<Tenant> list = tenantService.list((!user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, user.getTenantId()) : queryWrapper);
return R.data(list);
}
diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.java b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.java
index eb07e1f..65d7c86 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.java
@@ -20,6 +20,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.system.entity.Role;
+import org.springblade.modules.system.vo.RoleParam;
import org.springblade.modules.system.vo.RoleVO;
import java.util.List;
@@ -66,4 +67,11 @@
List<String> getRoleAliases(Long[] ids);
List<Role> getRoleListByIds(@Param("ids") String roleIds);
+
+ /**
+ * 自定义列表(只获取当前角色下级角色)
+ * @param roleParam
+ * @return
+ */
+ List<Role> getRoleList(@Param("roleParam") RoleParam roleParam);
}
diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml
index 9dc151f..57e1edd 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml
@@ -26,6 +26,7 @@
<select id="tree" resultMap="treeNodeResultMap">
select id, parent_id, role_name as title, id as "value", id as "key" from blade_role where is_deleted = 0
+ and id!=1123598816738675201
<if test="param1!=null">
and tenant_id = #{param1}
</if>
@@ -67,4 +68,30 @@
</foreach>
</select>
+ <!--角色查询-->
+ <select id="getRoleList" resultType="org.springblade.modules.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/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index fd25827..e65c4d3 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -29,6 +29,7 @@
<select id="selectUserPage" resultMap="userResultMap">
select * from blade_user where is_deleted = 0
+ and id != 1123598821738675201
<if test="tenantId!=null and tenantId != ''">
and tenant_id = #{tenantId}
</if>
diff --git a/src/main/java/org/springblade/modules/system/service/IRoleService.java b/src/main/java/org/springblade/modules/system/service/IRoleService.java
index 22c19b4..f754b33 100644
--- a/src/main/java/org/springblade/modules/system/service/IRoleService.java
+++ b/src/main/java/org/springblade/modules/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.modules.system.entity.Role;
+import org.springblade.modules.system.vo.RoleParam;
import org.springblade.modules.system.vo.RoleVO;
import javax.validation.constraints.NotEmpty;
@@ -116,4 +117,11 @@
* @return
*/
List<Role> getRoleListByIds(String roleIds);
+
+ /**
+ * 自定义列表(只获取当前角色下级角色)
+ * @param roleParam
+ * @return
+ */
+ List<Role> getRoleList(RoleParam roleParam);
}
diff --git a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
index 3ab9b53..d1f91f6 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
@@ -25,6 +25,7 @@
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.node.TreeNode;
import org.springblade.core.tool.support.Kv;
@@ -153,8 +154,7 @@
@Override
public List<TreeNode> grantTree(BladeUser user) {
- List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
- return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId()));
+ return ForestNodeMerger.merge(AuthUtil.getUser().getRoleName().equals(RoleConstant.ADMINISTRATOR) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId())));
}
@Override
diff --git a/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
index c8c9657..f299b26 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
@@ -35,6 +35,7 @@
import org.springblade.modules.system.service.IRoleMenuService;
import org.springblade.modules.system.service.IRoleScopeService;
import org.springblade.modules.system.service.IRoleService;
+import org.springblade.modules.system.vo.RoleParam;
import org.springblade.modules.system.vo.RoleVO;
import org.springblade.modules.system.wrapper.RoleWrapper;
import org.springframework.stereotype.Service;
@@ -197,6 +198,7 @@
}
role.setTenantId(parent.getTenantId());
}
+ role.setParentId(Long.parseLong(AuthUtil.getUser().getRoleId()));
role.setIsDeleted(BladeConstant.DB_NOT_DELETED);
return saveOrUpdate(role);
}
@@ -232,4 +234,14 @@
return baseMapper.getRoleListByIds(roleIds);
}
+ /**
+ * 自定义列表(只获取当前角色下级角色)
+ * @param roleParam
+ * @return
+ */
+ @Override
+ public List<Role> getRoleList(RoleParam roleParam) {
+ roleParam.setRoleId(AuthUtil.getUser().getRoleId());
+ return baseMapper.getRoleList(roleParam);
+ }
}
diff --git a/src/main/java/org/springblade/modules/system/vo/RoleParam.java b/src/main/java/org/springblade/modules/system/vo/RoleParam.java
new file mode 100644
index 0000000..6d7ae30
--- /dev/null
+++ b/src/main/java/org/springblade/modules/system/vo/RoleParam.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.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;
+}
--
Gitblit v1.9.3