From 52fd1e55b71fa38ffe89db738acc4e6c7e4da0df Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 02 二月 2024 16:47:35 +0800 Subject: [PATCH] 分类授权,数据授权界面请求参数修改 --- Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java | 18 +++++++++++++++--- 1 files changed, 15 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 475daee..764c61d 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 @@ -359,6 +359,7 @@ classifyAuths = classifyAuthMapper.selectList( Wrappers.<ClassifyAuth>query() .lambda().eq(ClassifyAuth::getClassifyId, classifyOidList.get(i)) + .eq(ClassifyAuth::getAuthType,authType) .in(ClassifyAuth::getRoleId, roleIds) ); if(!classifyAuths.isEmpty()){ @@ -366,9 +367,17 @@ } } } - //鍑虹幇浜嗛敊璇暟鎹紝鍚屼竴涓鑹插拰鍚屼竴涓垎绫籭d瀛樺湪澶氭潯鎺堟潈璁板綍 + //鍑虹幇浜嗗鏉℃暟鎹� if(classifyAuths.size()>1){ - throw new ServiceException("瑙掕壊鍜屽垎绫婚厤缃瓨鍦ㄥ鏉¤褰曪紝璇疯仈绯荤鐞嗕汉鍛樻竻鐞嗛敊璇厤缃紒"); + // 鏍¢獙鏄惁瀛樺湪閿欒鏁版嵁锛屽悓涓�涓鑹插拰鍚屼竴涓垎绫籭d瀛樺湪澶氭潯鎺堟潈璁板綍 + List<ClassifyAuth> finalClassifyAuths = classifyAuths; + boolean hasDuplicate = classifyAuths.stream() + .anyMatch(auth1 -> finalClassifyAuths.stream() + .filter(auth2 -> auth1 != auth2) + .anyMatch(auth2 -> auth1.getRoleId().equals(auth2.getRoleId()) && auth1.getClassifyId().equals(auth2.getClassifyId()))); + if (hasDuplicate) { + throw new ServiceException("瑙掕壊鍜屽垎绫婚厤缃瓨鍦ㄥ鏉¤褰曪紝璇疯仈绯荤鐞嗕汉鍛樻竻鐞嗛敊璇厤缃紒"); + } } // 鏄惁涓鸿秴绠� Boolean isAdmin = VciBaseUtil.checkAdminTenant(); @@ -379,7 +388,10 @@ List<String> ids = new ArrayList<>(); // 濡傛灉涓嶆槸瓒呯鐢ㄦ埛 if(!isAdmin){ - ids.addAll(Arrays.asList(classifyAuths.get(0).getButtonIds().split(","))); + String concatenatedButtonIds = classifyAuths.stream() + .map(ClassifyAuth::getButtonIds) // 鑾峰彇姣忎釜classifyAuths瀵硅薄鐨刡uttonIds + .collect(Collectors.joining(",")); // 鐢ㄩ�楀彿鍒嗛殧鎷兼帴鎴愪竴涓瓧绗︿覆 + ids.addAll(Arrays.asList(concatenatedButtonIds.split(","))); } return this.getMenuListByCode(ids,btmType,roleIds); } -- Gitblit v1.9.3