From ea4c92f6c102768fc8ef8ffa1814917be549240c Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Thu, 8 Aug 2024 10:57:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(87643):=20=E6=9D=83=E9=99=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LawsDataCenterFolderServiceImpl.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java index 612e63b2..40ea5f8d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java @@ -312,11 +312,37 @@ public class LawsDataCenterFolderServiceImpl extends ServiceImpl lawsDataCenterFolderList = list(new LambdaQueryWrapper() .orderByAsc(LawsDataCenterFolder::getSort).orderByAsc(LawsDataCenterFolder::getCreateTime)); - // 非管理员只能看到自己创建的 or 拥有管理权限 or 拥有查看权限的文件夹 or 默认根目录 List adminRoleCodeList = Arrays.asList(adminRoleCode.split(",")); Collection intersection = CollectionUtils.intersection(Arrays.asList(roleIds.split(",")), adminRoleCodeList); if (!roleIds.contains("admin") && CollectionUtils.isEmpty(intersection)){ + List list = new ArrayList<>(); + if (!CollectionUtils.isEmpty(lawsDataCenterFolderList)){ + List folderIdList = lawsDataCenterFolderList.stream() + .map(LawsDataCenterFolder::getId).collect(Collectors.toList()); + list = lawsDataCenterFolderSublistService.list( + new LambdaQueryWrapper() + .in(LawsDataCenterFolderSublist::getDataCenterFolderId, folderIdList)); + } + for (LawsDataCenterFolder lawsDataCenterFolder : lawsDataCenterFolderList) { + List lawsDataCenterFolderSublistList = + list.stream().filter(v -> v.getDataCenterFolderId().equals(lawsDataCenterFolder.getId())) + .collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(lawsDataCenterFolderSublistList)){ + String authManages = lawsDataCenterFolderSublistList.stream() + .filter(v -> DataCenterCommon.AUTH_MANAGE.equals(v.getType())) + .map(LawsDataCenterFolderSublist::getUserId) + .collect(Collectors.joining(",")); + lawsDataCenterFolder.setAuthManageIds(authManages); + String authViews = list.stream() + .filter(v -> DataCenterCommon.AUTH_VIEW.equals(v.getType())) + .map(LawsDataCenterFolderSublist::getUserId) + .collect(Collectors.joining(",")); + lawsDataCenterFolder.setAuthViewIds(authViews); + lawsDataCenterFolder.setAuthManageIds(authManages); + lawsDataCenterFolder.setAuthViewIds(authViews); + } + } lawsDataCenterFolderList = lawsDataCenterFolderList.stream() .filter(v -> (StringUtils.isNotBlank(v.getAuthManageIds()) && v.getAuthManageIds().contains(loginUser.getId())) || (StringUtils.isNotBlank(v.getAuthViewIds()) && v.getAuthViewIds().contains(loginUser.getId()))