|
@@ -161,7 +161,8 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
|
|
|
knowledge.setCreateTime(new Date());
|
|
|
knowledge.setUpdateBy(users.getUserId());
|
|
|
knowledge.setUpdateTime(new Date());
|
|
|
- knowledge.setAllowDownload(knowledgeDto.getAllowDownload());
|
|
|
+ knowledge.setDownloadUserId(knowledgeDto.getDownloadUserId());
|
|
|
+ knowledge.setDownloadDeptId(knowledgeDto.getDownloadDeptId());
|
|
|
if (!ObjectUtil.valueAllNull(knowledgeDto.getOrganizationIds())){
|
|
|
String organizationId = JSON.toJSON(knowledgeDto.getOrganizationIds()).toString();
|
|
|
knowledge.setOrganizationId(organizationId);
|
|
@@ -256,23 +257,18 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
|
|
|
knowledgeVo.setKnowledgeCategoryAdminVo(knowledgeCategoryService.findAllParentByCategoryId(knowledge.getCategoryId()));
|
|
|
}
|
|
|
//指定了附件下载权限会判断
|
|
|
- if (StringUtils.isNotEmpty(knowledge.getAllowDownload())){
|
|
|
+ if (StringUtils.isNotEmpty(knowledge.getDownloadUserId()) || StringUtils.isNotEmpty(knowledge.getDownloadDeptId())){
|
|
|
//附件下载权限
|
|
|
- knowledgeVo.setIsAllowDownload(isAllowDownload(knowledge.getAllowDownload()));
|
|
|
+ knowledgeVo.setIsAllowDownload(isAllowDownload(knowledge.getDownloadUserId(),knowledge.getDownloadDeptId()));
|
|
|
//附件可下载人员或部门字符串复制
|
|
|
- List<String> allowDownloadList = Arrays.asList(knowledge.getAllowDownload().split(","));
|
|
|
- String allowDownloadNameResult = allowDownloadList.parallelStream().map(h -> {
|
|
|
- String allowDownloadName = null;
|
|
|
- OsUserDto osUserDto = userService.queryOsUserDto(h);
|
|
|
- if (osUserDto != null) {
|
|
|
- allowDownloadName = osUserDto.getFullName();
|
|
|
- } else {
|
|
|
- OsGroupDto osGroupDto = userService.findDeptByDeptId(h);
|
|
|
- allowDownloadName = osGroupDto.getName();
|
|
|
- }
|
|
|
- return allowDownloadName;
|
|
|
- }).collect(Collectors.joining(","));
|
|
|
- knowledgeVo.setAllowDownload(allowDownloadNameResult);
|
|
|
+ if (StringUtils.isNotEmpty(knowledge.getDownloadUserId())){
|
|
|
+ List<String> fullNameList = knowledgeMapper.selectFullNameByUserIds(knowledge.getDownloadUserId().split(","));
|
|
|
+ knowledgeVo.setDownloadUserName(fullNameList.stream().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(knowledge.getDownloadDeptId())){
|
|
|
+ List<String> fullNameList = knowledgeMapper.selectFullNameByDeptIds(knowledge.getDownloadDeptId().split(","));
|
|
|
+ knowledgeVo.setDownloadDeptName(fullNameList.stream().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
}
|
|
|
if (knowledge.getIsDraft() == 0){
|
|
|
return knowledgeVo;
|
|
@@ -396,23 +392,18 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
|
|
|
e.setIsWithdraw(1);
|
|
|
}
|
|
|
//指定了附件下载权限会判断
|
|
|
- if (StringUtils.isNotEmpty(e.getAllowDownload())){
|
|
|
+ if (StringUtils.isNotEmpty(e.getDownloadUserId()) || StringUtils.isNotEmpty(e.getDownloadDeptId())){
|
|
|
//附件下载权限
|
|
|
- e.setIsAllowDownload(isAllowDownload(e.getAllowDownload()));
|
|
|
- //附件可下载人员或部门字符串赋值
|
|
|
- List<String> allowDownloadList = Arrays.asList(e.getAllowDownload().split(","));
|
|
|
- String allowDownloadNameResult = allowDownloadList.parallelStream().map(h -> {
|
|
|
- String allowDownloadName = null;
|
|
|
- OsUserDto osUserDto = userService.queryOsUserDto(h);
|
|
|
- if (osUserDto != null) {
|
|
|
- allowDownloadName = osUserDto.getFullName();
|
|
|
- } else {
|
|
|
- OsGroupDto osGroupDto = userService.findDeptByDeptId(h);
|
|
|
- allowDownloadName = osGroupDto.getName();
|
|
|
- }
|
|
|
- return allowDownloadName;
|
|
|
- }).collect(Collectors.joining(","));
|
|
|
- e.setAllowDownload(allowDownloadNameResult);
|
|
|
+ e.setIsAllowDownload(isAllowDownload(e.getDownloadUserId(),e.getDownloadDeptId()));
|
|
|
+ //附件可下载人员或部门字符串复制
|
|
|
+ if (StringUtils.isNotEmpty(e.getDownloadUserId())){
|
|
|
+ List<String> fullNameList = knowledgeMapper.selectFullNameByUserIds(e.getDownloadUserId().split(","));
|
|
|
+ e.setDownloadUserName(fullNameList.stream().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(e.getDownloadDeptId())){
|
|
|
+ List<String> fullNameList = knowledgeMapper.selectFullNameByDeptIds(e.getDownloadDeptId().split(","));
|
|
|
+ e.setDownloadDeptName(fullNameList.stream().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
});
|
|
@@ -1021,17 +1012,20 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
|
|
|
* 判断是否有下载附件权限(有权限 返回0; 没权限 返回1)
|
|
|
* @return
|
|
|
*/
|
|
|
- private Integer isAllowDownload(String allowDownload){
|
|
|
+ private Integer isAllowDownload(String downloadUserId,String downloadDeptId){
|
|
|
String userId = userService.queryLoginUser();
|
|
|
- List<String> deptAuthority = knowledgeApproveMapper.deptAuthority(userId); //部门权限字符串
|
|
|
+ String deptId = userService.queryLoginUserDeptId();
|
|
|
+ //可下载部门数组
|
|
|
+ List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(deptId);
|
|
|
+ String[] downloadDeptIdStr = downloadDeptId.split(",");
|
|
|
boolean flag = false;
|
|
|
- for (int i = 0; i < deptAuthority.size(); i++) {
|
|
|
- if (deptAuthority.get(i).contains(allowDownload)) {
|
|
|
+ for (int i = 0; i < downloadDeptIdStr.length; i++) {
|
|
|
+ if (deptAuthority.contains(downloadDeptIdStr[i])) {
|
|
|
flag = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- List<String> approverIdList = Arrays.asList(allowDownload.split(","));
|
|
|
+ List<String> approverIdList = Arrays.asList(downloadUserId.split(","));
|
|
|
// 如果有权限
|
|
|
if (!approverIdList.contains(userId) && !flag) {
|
|
|
// 不是该部门的人,不能查看
|