提交 11112aa9 作者: obcy

编辑知识库分类下角色权限

上级 80e3868b
......@@ -26,7 +26,7 @@ public class KbAuthuserKnowledgeprojectMap extends Model<KbAuthuserKnowledgeproj
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
private String id;
@TableField("auth_user_id")
private String authUserId;
......
......@@ -125,6 +125,7 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
if (CollectionUtil.isNotEmpty(kbAuthorizedUsers)){
kbAuthorizedUsers.forEach(e->{
e.setRoleId(reqUsersMap.get(e.getUserId()).get(0).getRoleId());
e.setKnowledgeProjectId(reqUsersMap.get(e.getUserId()).get(0).getKnowledgeProjectId());
});
authorizedUsers.addAll(kbAuthorizedUsers);
}
......@@ -136,13 +137,31 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
//查询授权节点和其子节点,一起授权
List<KbKnowledgeProject> projectTypes = knowledgeProjectService.list(Wrappers.<KbKnowledgeProject>lambdaQuery().like(KbKnowledgeProject::getFullPath, kbAuthorizedUser.getKnowledgeProjectId()));
//去除已经受过权的节点
List<String> thisBanth = authorizedUsers.stream().map(KbAuthorizedUser::getId).collect(Collectors.toList());
List<KbAuthuserKnowledgeprojectMap> list1 = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery().in(KbAuthuserKnowledgeprojectMap::getAuthUserId, thisBanth));
Map<String, List<KbAuthuserKnowledgeprojectMap>> collect1Map = list1.stream().collect(Collectors.groupingBy(KbAuthuserKnowledgeprojectMap::getAuthUserId));
List<KbUserRoleMap> maps = new ArrayList<>();
List<KbAuthuserKnowledgeprojectMap> userknows = new ArrayList<>();
authorizedUsers.forEach(authorizedUser->{
List<KbKnowledgeProject> projectTypesFi = new ArrayList<>();
//此用户已经受过权限的知识库分类
List<KbAuthuserKnowledgeprojectMap> kbAuthuserKnowledgeprojectMaps = collect1Map.get(authorizedUser.getId());
if (CollectionUtil.isNotEmpty(kbAuthuserKnowledgeprojectMaps)){
List<String> collect1 = kbAuthuserKnowledgeprojectMaps.stream().map(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId).collect(Collectors.toList());
projectTypesFi = projectTypes.stream().filter(f -> !collect1.contains(f.getId())).collect(Collectors.toList());
}else {
projectTypesFi = projectTypes;
}
/**插入用户知识库分类权限关系表*/
if (CollectionUtil.isNotEmpty(projectTypes)){
projectTypes.forEach(e -> {
if (CollectionUtil.isNotEmpty(projectTypesFi)){
projectTypesFi.forEach(e -> {
KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap();
kbAuthuserKnowledgeprojectMap.setAuthUserId(authorizedUser.getId());
kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(e.getId());
......@@ -164,7 +183,6 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
}
});
}
});
......@@ -206,20 +224,36 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
@Transactional
public Result<?> edit(KbAuthorizedUser authorizedUser) {
String newRole = authorizedUser.getRoleId();
String knowProId = authorizedUser.getKnowledgeProjectId();
authorizedUser.setUpdateTime(new Date());
super.updateById(authorizedUser);
/**修改用户角色关系表*/
if (StringUtils.isNotBlank(newRole)){
//所编辑知识库分类节点下所有的子节点
List<KbKnowledgeProject> knowPros = knowledgeProjectService.list(Wrappers.<KbKnowledgeProject>lambdaQuery()
.like(KbKnowledgeProject::getFullPath, knowProId)
);
kbUserRoleMapService.remove(Wrappers.<KbUserRoleMap>lambdaQuery().eq(KbUserRoleMap::getUserId,authorizedUser.getId()));
List<String> knowProIds = knowPros.stream().map(KbKnowledgeProject::getId).collect(Collectors.toList());
kbUserRoleMapService.remove(Wrappers.<KbUserRoleMap>lambdaQuery()
.eq(KbUserRoleMap::getUserId,authorizedUser.getId())
.in(KbUserRoleMap::getKnowledgeProjectId,knowProIds)
);
List<String> list = Arrays.asList(newRole.split(","));
List<KbUserRoleMap> maps = new ArrayList<>();
list.forEach(e->{
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId( authorizedUser.getId());
kbUserRoleMap.setRoleId(e);
maps.add(kbUserRoleMap);
knowProIds.forEach(ee->{
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId(authorizedUser.getId());
kbUserRoleMap.setRoleId(e);
kbUserRoleMap.setKnowledgeProjectId(ee);
kbUserRoleMap.setCreateDate(new Date());
maps.add(kbUserRoleMap);
});
});
kbUserRoleMapService.saveBatch(maps);
......@@ -227,6 +261,8 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
return Result.OK();
}
@Override
public Result<?> lists(String roleId, String username, String name, String orgId, String orgName, String knowledgeProjectId, String category, Integer pageNum, Integer pageSize) {
QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论