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