fix(资料中心): 完善

This commit is contained in:
yjz
2024-07-17 10:41:30 +08:00
parent 9a304d28ab
commit 534a912511
3 changed files with 53 additions and 16 deletions
@@ -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:否)
*/
@@ -106,7 +106,7 @@ public class LawsDataCenterFileServiceImpl extends ServiceImpl<LawsDataCenterFil
}
// 下载权限标识
String authDownloadIds = file.getAuthDownloadIds();
if (!authDownloadIds.contains(userId)){
if (StringUtils.isBlank(authDownloadIds) || !authDownloadIds.contains(userId)){
file.setAuthDownloadTag(false);
}
}
@@ -52,11 +52,11 @@ public class LawsDataCenterFolderServiceImpl extends ServiceImpl<LawsDataCenterF
@Autowired
private ILawsDataCenterFileService lawsDataCenterFileService;
@Autowired
private LawsDataCenterFolderSublistService lawsDataCenterFolderSublistService;
@Autowired
private ISysUserService sysUserService;
@Value("${adminRoleCode}")
private String adminRoleCode;
@Autowired
private LawsDataCenterFolderSublistService lawsDataCenterFolderSublistService;
/**
* @Author: liao
@@ -72,6 +72,40 @@ public class LawsDataCenterFolderServiceImpl extends ServiceImpl<LawsDataCenterF
.orderByAsc(LawsDataCenterFolder::getSort).orderByAsc(LawsDataCenterFolder::getCreateTime));
List<LawsDataCenterFolder> allList = BeanCopyUtils.copyBeanList(lawsDataCenterFolderList, LawsDataCenterFolder.class);
List<String> idList = lawsDataCenterFolderList.stream().map(LawsDataCenterFolder::getId).collect(Collectors.toList());
List<LawsDataCenterFolderSublist> list = new ArrayList<>();
if (!CollectionUtils.isEmpty(idList)){
list = lawsDataCenterFolderSublistService.list(
new LambdaQueryWrapper<LawsDataCenterFolderSublist>()
.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<String> adminRoleCodeList = Arrays.asList(adminRoleCode.split(","));
Collection<String> intersection = CollectionUtils.intersection(Arrays.asList(roleIds.split(",")), adminRoleCodeList);
@@ -90,12 +124,6 @@ public class LawsDataCenterFolderServiceImpl extends ServiceImpl<LawsDataCenterF
lawsDataCenterFolderList = lawsDataCenterFolderList.stream().filter(v -> v.getFolderName().contains(folderName)).collect(Collectors.toList());
}
// 翻译
for (LawsDataCenterFolder lawsDataCenterFolder : lawsDataCenterFolderList) {
lawsDataCenterFolder.setAuthManageIdsDictText(sysUserService.dictByIdsOrUserNames(lawsDataCenterFolder.getAuthManageIds(), ""));
lawsDataCenterFolder.setAuthViewIdsDictText(sysUserService.dictByIdsOrUserNames(lawsDataCenterFolder.getAuthViewIds(), ""));
}
// 寻找每个子级的父节点直到最上级
List<LawsDataCenterFolder> fatherNodeList = new ArrayList<>();
findFatherNode(lawsDataCenterFolderList, allList, fatherNodeList);