From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog
---
src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 54 insertions(+), 2 deletions(-)
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 7d41814..134392f 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
@@ -26,6 +26,7 @@
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.utils.BeanUtil;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.system.entity.Role;
@@ -35,6 +36,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;
@@ -71,12 +73,20 @@
@Override
public List<RoleVO> tree(String tenantId) {
String userRole = AuthUtil.getUserRole();
+ String roleId = AuthUtil.getUser().getRoleId();
String excludeRole = null;
if (!CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMIN) && !CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMINISTRATOR)) {
excludeRole = RoleConstant.ADMIN;
}
- return ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole));
+ List<RoleVO> merge = ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole));
+ List<RoleVO> copy = BeanUtil.copy(merge, RoleVO.class);
+ if (!AuthUtil.isAdministrator() && !AuthUtil.isAdmin()) {
+ List<RoleVO> collect = copy.stream().filter(item -> roleId.contains(item.getId().toString())).collect(Collectors.toList());
+ return collect;
+ }
+ return merge;
}
+
@Override
@Transactional(rollbackFor = Exception.class)
@@ -108,7 +118,7 @@
// 新增配置
roleMenuService.saveBatch(roleMenus);
// 递归设置下属角色菜单集合
- recursionRoleMenu(roleIds, menuIds);
+// recursionRoleMenu(roleIds, menuIds);
return true;
}
@@ -196,7 +206,10 @@
throw new ServiceException("父节点不可选择自身!");
}
role.setTenantId(parent.getTenantId());
+ } else {
+ role.setParentId(Long.parseLong(AuthUtil.getUser().getRoleId()));
}
+// role.setParentId(Long.parseLong(AuthUtil.getUser().getRoleId()));
role.setIsDeleted(BladeConstant.DB_NOT_DELETED);
return saveOrUpdate(role);
}
@@ -227,4 +240,43 @@
return removeByIds(Func.toLongList(ids));
}
+ @Override
+ public List<Role> getRoleListByIds(String roleIds) {
+ return baseMapper.getRoleListByIds(roleIds);
+ }
+
+ /**
+ * 自定义列表(只获取当前角色下级角色)
+ *
+ * @param roleParam
+ * @return
+ */
+ @Override
+ public List<Role> getRoleList(RoleParam roleParam) {
+ roleParam.setRoleId(AuthUtil.getUser().getRoleId());
+ return baseMapper.getRoleList(roleParam);
+ }
+
+ /**
+ * 查询对应的角色id
+ * @param roleId
+ * @param type 登录类型 2:pc 3:app
+ * @return
+ */
+ @Override
+ public List<String> getRoleIdStrByRoleIdAndType(String roleId,Integer type) {
+ List<Integer> list = new ArrayList<>();
+ if (type!=1){
+ list.add(1);
+ // pc
+ if (type==2){
+ list.add(2);
+ }
+ // app
+ if (type==3){
+ list.add(3);
+ }
+ }
+ return baseMapper.getRoleIdStrByRoleIdAndType(roleId,list);
+ }
}
--
Gitblit v1.9.3