提交 174fea68 作者: chenshiqiang

Merge remote-tracking branch 'origin/master'

......@@ -38,6 +38,9 @@ public class KbAuthorizedUserController {
return authorizedUserService.addOne(authorizedUser);
}
/**
* 添加授权用户,对某个知识库分类下添加一个或者多个授权用户
* */
@PostMapping("/add")
public Result<?> add(@RequestBody List<KbAuthorizedUser> authorizedUser){
return authorizedUserService.add(authorizedUser);
......@@ -102,5 +105,19 @@ public class KbAuthorizedUserController {
return authorizedUserService.thirdpartyUsers(token,name,username,pageNum,PageSize);
}
@GetMapping("/getAll")
public Result<?> getAll(KbAuthorizedUser user){
return authorizedUserService.getAll(user);
}
/**
* 查看资讯有哪些人有权限查看
* */
@GetMapping("/knowBelongWho")
public Result<?> knowBelongWho(
@RequestParam(name="knowledgeProjectId") String knowledgeProjectId,
@RequestParam(name="knowledgeId") String knowledgeId){
return authorizedUserService.knowBelongWho(knowledgeProjectId,knowledgeId);
}
}
......@@ -115,6 +115,10 @@ public class KbAuthorizedUser extends Model<KbAuthorizedUser> {
*/
@TableField(exist = false)
private Integer isAll;
@TableField(exist = false)
private Integer pageNum;
@TableField(exist = false)
private Integer pageSize;
}
......@@ -30,10 +30,21 @@ public interface KbAuthorizedUserService extends IService<KbAuthorizedUser> {
Result<?> doCheck(String token);
Result<?> doCheckAndGetUser(String token);
/**
* 已经在授权用户表存在的用户不会在授权用户表中重复存储。
* 存储授权用户在某个节点下以及所有子节点的授权信息(如果这个用户在某个子节点已经有授权了,则不改变子节点之前的权限)
* (顶级节点,”所有“)根节点授权的用户 只会存储本节点的用户权限信息
* */
Result<?> add(List<KbAuthorizedUser> authorizedUser);
/**
* 删除用户在某节点下的授权信息,删除后 如果所有节点都没有此用户的授权信息了,则删除授权用户
* */
Result<?> delById(String id, String knowledgeProjectId);
Result<?> addUserPermitsKnows(AddUserPermissKnowsVo addUserPermissKnowsVo);
Result<?> getAll(KbAuthorizedUser user);
Result<?> knowBelongWho(String knowledgeProjectId, String knowledgeId);
}
......@@ -2,6 +2,7 @@ package com.zzsn.knowbase.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
......@@ -13,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.knowbase.entity.*;
import com.zzsn.knowbase.mapper.KbAuthorizedUserMapper;
import com.zzsn.knowbase.service.*;
import com.zzsn.knowbase.util.SpringContextUtils;
import com.zzsn.knowbase.vo.AddUserPermissKnowsVo;
import com.zzsn.knowbase.vo.Result;
import com.zzsn.knowbase.vo.UserInfoVo;
......@@ -131,6 +133,7 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
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);
}
......@@ -194,14 +197,18 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
kbUserRoleMapService.saveBatch(maps);
authuserKnowledgeprojectMapService.saveBatch(userknows);
}else {
List<String> collect1 = notExist.stream().map(KbAuthorizedUser::getId).collect(Collectors.toList());
authorizedUsers.forEach(authorizedUser->{
if (collect1.contains(authorizedUser.getId())) {
/**插入用户知识库权限关系表*/
if (StringUtils.isNotBlank(authorizedUser.getKnowledgeProjectId())){
KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap();
kbAuthuserKnowledgeprojectMap.setAuthUserId(authorizedUser.getId());
kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(authorizedUser.getKnowledgeProjectId());
kbAuthuserKnowledgeprojectMap.setSign(0);
authuserKnowledgeprojectMapService.save(kbAuthuserKnowledgeprojectMap);
}
/**插入用户角色关系表*/
if (StringUtils.isNotBlank(authorizedUser.getRoleId())){
......@@ -217,6 +224,8 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
});
kbUserRoleMapService.saveBatch(maps);
}
}
});
}
......@@ -227,6 +236,8 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
@Override
@Transactional
public Result<?> delById(String id, String knowledgeProjectId) {
if (!"0".equals(knowledgeProjectId)) {
//移除知识库分类节点下所有的子节点下的这个用户
List<KbKnowledgeProject> knowPros = knowledgeProjectService.list(Wrappers.<KbKnowledgeProject>lambdaQuery()
.like(KbKnowledgeProject::getFullPath, knowledgeProjectId)
......@@ -242,6 +253,23 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
kbAuthuserKnowMapService.remove(Wrappers.<KbAuthuserKnowMap>lambdaQuery()
.eq(KbAuthuserKnowMap::getAuthUserId,id)
.in(KbAuthuserKnowMap::getKnowledgeProjectId,knowProIds));
//判断用户在有没有其他节点的权限,如果都没有了,就移除这个授权用户
List<KbAuthuserKnowledgeprojectMap> list = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery().eq(KbAuthuserKnowledgeprojectMap::getAuthUserId, id));
if (CollectionUtil.isEmpty(list)){
super.remove(Wrappers.<KbAuthorizedUser>lambdaQuery().eq(KbAuthorizedUser::getId,id));
}
}else {
super.remove(Wrappers.<KbAuthorizedUser>lambdaQuery().eq(KbAuthorizedUser::getId,id));
kbUserRoleMapService.remove(Wrappers.<KbUserRoleMap>lambdaQuery()
.eq(KbUserRoleMap::getUserId,id)
.eq(KbUserRoleMap::getKnowledgeProjectId,"0")
);
authuserKnowledgeprojectMapService.remove(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery()
.eq(KbAuthuserKnowledgeprojectMap::getAuthUserId,id)
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId,"0"));
}
return Result.OK();
}
......@@ -260,6 +288,11 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, knowledgeProjectId)
.eq(KbAuthuserKnowledgeprojectMap::getSign, 0)
);
List<KbAuthuserKnowledgeprojectMap> listSign = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery()
.in(KbAuthuserKnowledgeprojectMap::getAuthUserId, userIds)
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, knowledgeProjectId)
.eq(KbAuthuserKnowledgeprojectMap::getSign, 1)
);
if (CollectionUtil.isNotEmpty(list)){
StringBuffer res = new StringBuffer();
......@@ -273,16 +306,22 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
List<KbAuthuserKnowMap> saves = new ArrayList<>();
List<KbAuthuserKnowledgeprojectMap> saves1 = new ArrayList<>();
authorizedUsers.forEach(user->{
//第一次在这个节点添加资讯授权
if (CollectionUtil.isEmpty(listSign)) {
KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap();
kbAuthuserKnowledgeprojectMap.setAuthUserId(user.getId());
kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(knowledgeProjectId);
kbAuthuserKnowledgeprojectMap.setSign(1);
kbAuthuserKnowledgeprojectMap.setCreateDate(new Date());
saves1.add(kbAuthuserKnowledgeprojectMap);
}
knowledgeIds.forEach(know->{
KbAuthuserKnowMap kbAuthuserKnowMap = new KbAuthuserKnowMap();
kbAuthuserKnowMap.setAuthUserId(user.getId());
kbAuthuserKnowMap.setCreateDate(new Date());
kbAuthuserKnowMap.setKnowledgeId(know);
kbAuthuserKnowMap.setKnowledgeProjectId(knowledgeProjectId);
saves.add(kbAuthuserKnowMap);
});
});
kbAuthuserKnowMapService.saveBatch(saves);
......@@ -290,6 +329,56 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
return Result.OK();
}
@Override
public Result<?> getAll(KbAuthorizedUser user) {
Integer pageNum = 1;
Integer pageSize = 10;
if (ObjectUtil.isNotEmpty(user.getPageNum())) {
pageNum = user.getPageNum();
}
if (ObjectUtil.isNotEmpty(user.getPageSize())) {
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)
));
}
@Override
public Result<?> knowBelongWho(String knowledgeProjectId, String knowledgeId) {
List<String> userIds = new ArrayList<>();
List<KbAuthuserKnowledgeprojectMap> list = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery()
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, knowledgeProjectId)
.eq(KbAuthuserKnowledgeprojectMap::getSign, 0)
);
if (CollectionUtil.isNotEmpty(list)){
List<String> collect = list.stream().map(KbAuthuserKnowledgeprojectMap::getAuthUserId).collect(Collectors.toList());
userIds.addAll(collect);
}
List<KbAuthuserKnowMap> list1 = kbAuthuserKnowMapService.list(Wrappers.<KbAuthuserKnowMap>lambdaQuery()
.eq(KbAuthuserKnowMap::getKnowledgeProjectId, knowledgeProjectId)
.eq(KbAuthuserKnowMap::getKnowledgeId, knowledgeId)
);
if (CollectionUtil.isNotEmpty(list1)){
List<String> collect = list1.stream().map(KbAuthuserKnowMap::getAuthUserId).collect(Collectors.toList());
userIds.addAll(collect);
}
if (CollectionUtil.isNotEmpty(userIds)) {
return Result.OK(super.list(Wrappers.<KbAuthorizedUser>lambdaQuery().in(KbAuthorizedUser::getId,userIds)));
}else {
return Result.OK();
}
}
@Override
@Transactional
......
......@@ -169,6 +169,13 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
.eq(KbKnowledgeProject::getPid,projectId)
.eq(StrUtil.isNotBlank(category),KbKnowledgeProject::getCategory,category));
}
List<KbPermissions> list = permissionsService.list(Wrappers.<KbPermissions>lambdaQuery().in(KbPermissions::getPermissionCode,Arrays.asList("p_look","p_edit","p_del")));
List<KbRole> rManager = roleService.list(Wrappers.<KbRole>lambdaQuery().eq(KbRole::getRoleCode, "r_manager"));
kbKnowledgeProjects.forEach(e -> {
e.setPermissions(list);
e.setRoles(rManager);
});
return Result.OK(kbKnowledgeProjects);
}else {
List<KbKnowledgeProject> kbKnowledgeProjects ;
......
......@@ -7,7 +7,7 @@ spring:
max-request-size: 1024MB
max-file-size: 100MB
datasource:
url: jdbc:mysql://114.116.44.11:3306/knowledge?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&AllowPublicKeyRetrieval=True
url: jdbc:mysql://114.116.44.11:3306/knowledge?useUnicode=true&characterEncoding=utf-8&AllowPublicKeyRetrieval=True&serverTimezone=Asia/Shanghai&autoReconnect=true&rewriteBatchedStatements=true
username: ciglobal
password: qwer@9988&zzsn
elasticsearch:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论