From 534a91251182920785a03483ccc7b41875b6f01f Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Wed, 17 Jul 2024 10:41:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=B5=84=E6=96=99=E4=B8=AD=E5=BF=83):=20?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/LawsDataCenterFolder.java | 23 +++++++--- .../impl/LawsDataCenterFileServiceImpl.java | 2 +- .../impl/LawsDataCenterFolderServiceImpl.java | 44 +++++++++++++++---- 3 files changed, 53 insertions(+), 16 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/entity/LawsDataCenterFolder.java b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/entity/LawsDataCenterFolder.java index 3db0c13d..8769f2fa 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/entity/LawsDataCenterFolder.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/entity/LawsDataCenterFolder.java @@ -88,6 +88,7 @@ public class LawsDataCenterFolder implements Serializable { @Excel(name = "管理权限(用户id逗号拼接)", width = 15) @ApiModelProperty(value = "管理权限(用户id逗号拼接)") @Size(max = 2000, message = "管理权限超出最大限度") + @TableField(exist = false) private java.lang.String authManageIds; /** * 管理权限(用户id逗号拼接) 翻译" @@ -101,20 +102,28 @@ public class LawsDataCenterFolder implements Serializable { @Excel(name = "查看权限(用户id逗号拼接)", width = 15) @ApiModelProperty(value = "查看权限(用户id逗号拼接)") @Size(max = 2000, message = "查看权限超出最大限度") + @TableField(exist = false) private java.lang.String authViewIds; - /** - * 下载权限(用户id逗号拼接) - */ - @Excel(name = "下载权限(用户id逗号拼接)", width = 15) - @ApiModelProperty(value = "下载权限(用户id逗号拼接)") - @Size(max = 2000, message = "下载权限超出最大限度") - private java.lang.String authDownloadIds; /** * 查看权限(用户id逗号拼接) 翻译 */ @ApiModelProperty(value = "查看权限(用户id逗号拼接) 翻译") @TableField(exist = false) private java.lang.String authViewIdsDictText; + /** + * 下载权限(用户id逗号拼接) + */ + @Excel(name = "下载权限(用户id逗号拼接)", width = 15) + @ApiModelProperty(value = "下载权限(用户id逗号拼接)") + @Size(max = 2000, message = "下载权限超出最大限度") + @TableField(exist = false) + private java.lang.String authDownloadIds; + /** + * 下载权限(用户id逗号拼接) 翻译 + */ + @ApiModelProperty(value = "下载权限(用户id逗号拼接) 翻译") + @TableField(exist = false) + private java.lang.String authDownloadIdsDictText; /** * 默认根节点(1:是 0:否) */ diff --git a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java index 95fb863f..f3b327fa 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java @@ -106,7 +106,7 @@ public class LawsDataCenterFileServiceImpl extends ServiceImpl allList = BeanCopyUtils.copyBeanList(lawsDataCenterFolderList, LawsDataCenterFolder.class); + List idList = lawsDataCenterFolderList.stream().map(LawsDataCenterFolder::getId).collect(Collectors.toList()); + List list = new ArrayList<>(); + if (!CollectionUtils.isEmpty(idList)){ + list = lawsDataCenterFolderSublistService.list( + new LambdaQueryWrapper() + .in(LawsDataCenterFolderSublist::getDataCenterFolderId, idList)); + } + + // 填充权限加翻译 + for (LawsDataCenterFolder lawsDataCenterFolder : lawsDataCenterFolderList) { + String authManages = list.stream() + .filter(v -> v.getDataCenterFolderId().equals(lawsDataCenterFolder.getId()) + && DataCenterCommon.AUTH_MANAGE.equals(v.getType())) + .map(LawsDataCenterFolderSublist::getUserId) + .collect(Collectors.joining(",")); + lawsDataCenterFolder.setAuthManageIds(authManages); + String authViews = list.stream() + .filter(v -> v.getDataCenterFolderId().equals(lawsDataCenterFolder.getId()) + && DataCenterCommon.AUTH_VIEW.equals(v.getType())) + .map(LawsDataCenterFolderSublist::getUserId) + .collect(Collectors.joining(",")); + lawsDataCenterFolder.setAuthViewIds(authViews); + String authDownloads = list.stream() + .filter(v -> v.getDataCenterFolderId().equals(lawsDataCenterFolder.getId()) + && DataCenterCommon.AUTH_DOWNLOAD.equals(v.getType())) + .map(LawsDataCenterFolderSublist::getUserId) + .collect(Collectors.joining(",")); + lawsDataCenterFolder.setAuthDownloadIds(authDownloads); + + lawsDataCenterFolder.setAuthManageIdsDictText(sysUserService.dictByIdsOrUserNames(lawsDataCenterFolder.getAuthManageIds(), "")); + lawsDataCenterFolder.setAuthViewIdsDictText(sysUserService.dictByIdsOrUserNames(lawsDataCenterFolder.getAuthViewIds(), "")); + lawsDataCenterFolder.setAuthDownloadIdsDictText(sysUserService.dictByIdsOrUserNames(lawsDataCenterFolder.getAuthDownloadIds(), "")); + } + // 非管理员只能看到自己创建的 or 拥有管理权限 or 拥有查看权限的文件夹 or 默认根目录 List adminRoleCodeList = Arrays.asList(adminRoleCode.split(",")); Collection intersection = CollectionUtils.intersection(Arrays.asList(roleIds.split(",")), adminRoleCodeList); @@ -90,12 +124,6 @@ public class LawsDataCenterFolderServiceImpl extends ServiceImpl v.getFolderName().contains(folderName)).collect(Collectors.toList()); } - // 翻译 - for (LawsDataCenterFolder lawsDataCenterFolder : lawsDataCenterFolderList) { - lawsDataCenterFolder.setAuthManageIdsDictText(sysUserService.dictByIdsOrUserNames(lawsDataCenterFolder.getAuthManageIds(), "")); - lawsDataCenterFolder.setAuthViewIdsDictText(sysUserService.dictByIdsOrUserNames(lawsDataCenterFolder.getAuthViewIds(), "")); - } - // 寻找每个子级的父节点直到最上级 List fatherNodeList = new ArrayList<>(); findFatherNode(lawsDataCenterFolderList, allList, fatherNodeList);