From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 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