From 13e07d48a90efdaee8b89e96a1d97a42f19777d7 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 25 十月 2023 22:43:53 +0800
Subject: [PATCH] 1、修改从其他规则克隆规则时排序号未重排的bug。 2、为密码策略管理、用户管理、部门管理界面增加按钮权限控制
---
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java | 31 ++++++++++++++++++++++++++++---
1 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
index cc258f7..23d66c4 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
@@ -20,6 +20,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.starter.util.MybatisParameterUtil;
import com.vci.ubcs.system.cache.NacosConfigCache;
import com.vci.ubcs.system.cache.SysCache;
import com.vci.ubcs.system.dto.MenuDTO;
@@ -150,9 +151,11 @@
@Override
public List<TreeNode> grantTree(BladeUser user) {
- List<TreeNode> menuTree = user.getTenantId().equals(nacosConfigCache.getAdminUserInfo().getTenantId())
+ /*List<TreeNode> menuTree = user.getTenantId().equals(nacosConfigCache.getAdminUserInfo().getTenantId())
&& user.getUserId().equals(nacosConfigCache.getAdminUserInfo().getUserId())
- ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
+ ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));*/
+ // 淇敼涓烘墍鏈夌敤鎴烽兘鑳芥煡璇㈡墍鏈夛紝鍥犱负娌℃潈闄愮殑鐢ㄦ埛涓嶅叿澶囪繖涓彍鍗曢〉闈㈢殑鏉冮檺锛屼篃灏辨病蹇呰闄愬埗鐢ㄦ埛鏌ヨ嚜宸辩殑
+ List<TreeNode> menuTree = baseMapper.grantTree();
return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId()));
}
@@ -314,16 +317,38 @@
/**
* 鏍规嵁code鏌ヨ鑿滃崟淇℃伅
* @param codes
+ * @param userId
* @return
*/
@Override
- public List<Menu> getMenuByCodes(List<String> codes) {
+ public List<Menu> getMenuByCodes(List<String> codes,Long userId) {
+ if(codes.isEmpty()){
+ return new ArrayList<>();
+ }
+ // 鏌ヨ鑿滃崟淇℃伅
LambdaQueryWrapper<Menu> wrapper = Wrappers.<Menu>query()
.lambda()
.in(Menu::getCode, codes)
.eq(Menu::getIsDeleted,0) /*鏈鍒犻櫎*/
.eq(Menu::getCategory,1) /*鑿滃崟绫诲瀷涓嶈兘涓烘寜閽�*/
.orderByAsc(Menu::getCode); /*鏍规嵁code鎺掑簭涓巆lassify鐨刡tmtypeid瀵瑰簲*/
+ // 瓒呯涓嶇敤鏍规嵁瑙掕壊鏉ユ煡璇�
+ if(!AuthUtil.getTenantId().equals(NacosConfigCache.getAdminUserInfo().getTenantId())
+ && !AuthUtil.getUserId().equals(NacosConfigCache.getAdminUserInfo().getUserId())
+ ){
+ if(Func.isBlank(userId.toString()) && Func.isBlank(AuthUtil.getUserId().toString())){
+ throw new ServiceException("鑾峰彇鐢ㄦ埛id澶辫触");
+ }
+ List<Long> menuIds = roleMenuService.getMenuIdByUserId(userId);
+ if(menuIds.isEmpty()){
+ return new ArrayList<>();
+ }
+ if(menuIds.size()>=1000){
+ MybatisParameterUtil.cutInParameter(wrapper,Menu::getId,menuIds);
+ }else {
+ wrapper.in(Menu::getId,menuIds);
+ }
+ }
return this.list(wrapper);
}
--
Gitblit v1.9.3