提交 9acfa543 作者: obcy

单篇授权修改

上级 4fed1e8f
......@@ -286,12 +286,49 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
if (StrUtil.isBlank(knowledgeProjectId)||CollectionUtil.isEmpty(authorizedUsers)||CollectionUtil.isEmpty(knowledgeIds)){
return Result.error("请检查参数,授权节点、授权用户,授权资讯不能为空");
}
Map<String, List<KbAuthorizedUser>> reqUsersMap = authorizedUsers.stream().collect(Collectors.groupingBy(KbAuthorizedUser::getUserId));
//授权用户表中已存在的用户
List<KbAuthorizedUser> kbAuthorizedUsers = authorizedUserMapper.selectList(Wrappers.<KbAuthorizedUser>lambdaQuery()
.in(KbAuthorizedUser::getUserId, authorizedUsers.stream().map(KbAuthorizedUser::getUserId).collect(Collectors.toList())));
List<String> collects = kbAuthorizedUsers.stream().map(KbAuthorizedUser::getUserId).collect(Collectors.toList());
//已经授权过的用户在用户表里不用重复插入
List<KbAuthorizedUser> notExist = authorizedUsers.stream().filter(f -> !collects.contains(f.getUserId())).collect(Collectors.toList());
authorizedUsers = new ArrayList<>();
authorizedUsers.addAll(notExist);
if (CollectionUtil.isNotEmpty(authorizedUsers)) {
authorizedUsers.forEach(e-> {
/**保存授权用户*/
e.setStatus("0");
e.setCreateBy(SpringContextUtils.getUserInfo().getUsername());
e.setCreateTime(new Date());
});
super.saveBatch(authorizedUsers);
}
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());
e.setCreateBy(SpringContextUtils.getUserInfo().getUsername());
});
authorizedUsers.addAll(kbAuthorizedUsers);
}
List<String> userIds = authorizedUsers.stream().map(KbAuthorizedUser::getId).collect(Collectors.toList());
List<KbAuthuserKnowledgeprojectMap> list = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery()
.in(KbAuthuserKnowledgeprojectMap::getAuthUserId, userIds)
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, knowledgeProjectId)
.eq(KbAuthuserKnowledgeprojectMap::getSign, 0)
);
List<KbAuthuserKnowledgeprojectMap> listSign = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery()
.in(KbAuthuserKnowledgeprojectMap::getAuthUserId, userIds)
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, knowledgeProjectId)
......@@ -321,6 +358,16 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
kbAuthuserKnowledgeprojectMap.setSign(1);
kbAuthuserKnowledgeprojectMap.setCreateDate(new Date());
saves1.add(kbAuthuserKnowledgeprojectMap);
}else {
Map<String, KbAuthuserKnowledgeprojectMap> collect1 = listSign.stream().collect(Collectors.toMap(KbAuthuserKnowledgeprojectMap::getAuthUserId, e -> e));
if (ObjectUtil.isEmpty(collect1.get(user.getId()))){
KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap();
kbAuthuserKnowledgeprojectMap.setAuthUserId(user.getId());
kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(knowledgeProjectId);
kbAuthuserKnowledgeprojectMap.setSign(1);
kbAuthuserKnowledgeprojectMap.setCreateDate(new Date());
saves1.add(kbAuthuserKnowledgeprojectMap);
}
}
knowledgeIds.forEach(know->{
......@@ -361,16 +408,52 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
pageSize = user.getPageSize();
}
//查询出已经有超级管理员权限的用户,做排除
List<KbUserRoleMap> list = kbUserRoleMapService.list(Wrappers.<KbUserRoleMap>lambdaQuery().eq(KbUserRoleMap::getKnowledgeProjectId, "0"));
List<String> collect = list.stream().map(KbUserRoleMap::getUserId).collect(Collectors.toList());
Page page = new Page(pageNum,pageSize);
return Result.OK(super.page(page,Wrappers.<KbAuthorizedUser>lambdaQuery()
.like(StringUtils.isNotBlank(user.getName()),KbAuthorizedUser::getName,user.getName())
.eq(StringUtils.isNotBlank(user.getUsername()),KbAuthorizedUser::getUsername,user.getUsername())
.eq(StringUtils.isNotBlank(user.getOrgId()),KbAuthorizedUser::getOrgId,user.getOrgId())
.eq(StringUtils.isNotBlank(user.getOrgName()),KbAuthorizedUser::getOrgName,user.getOrgName())
.notIn(CollectionUtil.isNotEmpty(collect),KbAuthorizedUser::getId,collect)
));
List<KbUserRoleMap> listSuper = kbUserRoleMapService.list(Wrappers.<KbUserRoleMap>lambdaQuery().eq(KbUserRoleMap::getKnowledgeProjectId, "0"));
List<String> userIds = listSuper.stream().map(KbUserRoleMap::getUserId).collect(Collectors.toList());
//查询出这个节点已经受过权的用户
List<KbAuthuserKnowledgeprojectMap> list1 = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery().eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, user.getKnowledgeProjectId()));
StringBuffer exists = new StringBuffer();
List<String> collect = list1.stream().map(KbAuthuserKnowledgeprojectMap::getAuthUserId).collect(Collectors.toList());
List<String> existsIds = new ArrayList<>();
existsIds.addAll(userIds);
existsIds.addAll(collect);
if (CollectionUtil.isNotEmpty(existsIds)){
List<KbAuthorizedUser> list = super.list(Wrappers.<KbAuthorizedUser>lambdaQuery().select(KbAuthorizedUser::getUserId).in(KbAuthorizedUser::getId, existsIds));
List<String> collect1 = list.stream().map(KbAuthorizedUser::getUserId).collect(Collectors.toList());
collect1.forEach(e ->{
exists.append(","+e);
});
}
String finalExists = "";
if (exists.length()>0){
finalExists = exists.substring(1);
}
String token = SpringContextUtils.getHttpServletRequest().getHeader("X-Access-Token");
String body = HttpRequest.get(getusersurl).header("X-Access-Token", token)
.form("pageNum",pageNum)
.form("pageSize",pageSize)
.form("name",user.getName())
.form("username",user.getUsername())
.form("excludeIds",finalExists)
.execute().body();
Result bean = JSONUtil.toBean(body, Result.class);
Page page = JSONUtil.toBean(JSONUtil.toJsonStr(bean.getResult()), Page.class);
List<KbAuthorizedUser> list = JSONUtil.toList(JSONUtil.parseArray(JSONUtil.toJsonStr(page.getRecords())), KbAuthorizedUser.class);
Page<KbAuthorizedUser> result = new Page<>();
result.setTotal(page.getTotal());
result.setCurrent(page.getCurrent());
result.setSize(page.getSize());
result.setRecords(list);
return Result.OK(result);
}
@Override
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论