提交 bcb9fb81 作者: obcy

修改

上级 304e7777
...@@ -31,16 +31,16 @@ public class KnowInterceptor implements HandlerInterceptor { ...@@ -31,16 +31,16 @@ public class KnowInterceptor implements HandlerInterceptor {
// 在请求处理之前进行调用(Controller方法调用之前) // 在请求处理之前进行调用(Controller方法调用之前)
// 返回true才会继续执行后续的Interceptor和Controller // 返回true才会继续执行后续的Interceptor和Controller
// 返回false则取消当前请求 // 返回false则取消当前请求
// String token = request.getHeader("X-Access-Token"); String token = request.getHeader("X-Access-Token");
//
// KbAuthorizedUserService userService = SpringContextUtils.getBean(KbAuthorizedUserService.class); KbAuthorizedUserService userService = SpringContextUtils.getBean(KbAuthorizedUserService.class);
// Result<?> result = userService.doCheckAndGetUser(token); Result<?> result = userService.doCheckAndGetUser(token);
// /**第三方用户验证未通过,直接拦截请求并返回提示*/ /**第三方用户验证未通过,直接拦截请求并返回提示*/
// if (!result.isSuccess()){ if (!result.isSuccess()){
// doRes(request,response); doRes(request,response);
// return false; return false;
// } }
// request.setAttribute(Constants.USER_INFO, JSONUtil.toJsonStr(result.getResult())); request.setAttribute(Constants.USER_INFO, JSONUtil.toJsonStr(result.getResult()));
return true; return true;
} }
......
...@@ -110,6 +110,11 @@ public class KbAuthorizedUser extends Model<KbAuthorizedUser> { ...@@ -110,6 +110,11 @@ public class KbAuthorizedUser extends Model<KbAuthorizedUser> {
*/ */
@TableField(exist = false) @TableField(exist = false)
private String knowledgeProjectId; private String knowledgeProjectId;
/**
* 是否有所有节点的权限,0是,1否
*/
@TableField(exist = false)
private Integer isAll;
} }
package com.zzsn.knowbase.entity; package com.zzsn.knowbase.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -31,13 +30,18 @@ public class KbUserRoleMap extends Model<KbUserRoleMap> { ...@@ -31,13 +30,18 @@ public class KbUserRoleMap extends Model<KbUserRoleMap> {
* 授权用户id * 授权用户id
*/ */
@TableField("user_id") @TableField("user_id")
private Long userId; private String userId;
/** /**
* 角色id * 角色id
*/ */
@TableField("role_id") @TableField("role_id")
private Long roleId; private String roleId;
/**
* 知识库分类id
*/
@TableField("knowledge_project_id")
private String knowledgeProjectId;
......
...@@ -72,25 +72,26 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap ...@@ -72,25 +72,26 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
authorizedUser.setCreateTime(new Date()); authorizedUser.setCreateTime(new Date());
super.save(authorizedUser); super.save(authorizedUser);
/**插入用户角色关系表*/
if (StringUtils.isNotBlank(authorizedUser.getRoleId())){
String roleId = authorizedUser.getRoleId();
List<String> list = Arrays.asList(roleId.split(","));
List<KbUserRoleMap> maps = new ArrayList<>();
list.forEach(e->{
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId(Long.parseLong(authorizedUser.getId()));
kbUserRoleMap.setRoleId(Long.parseLong(e));
maps.add(kbUserRoleMap);
});
kbUserRoleMapService.saveBatch(maps);
}
/**插入用户知识库权限关系表*/ /**插入用户知识库权限关系表*/
if (StringUtils.isNotBlank(authorizedUser.getKnowledgeProjectId())){ if (StringUtils.isNotBlank(authorizedUser.getKnowledgeProjectId())){
KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap(); KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap();
kbAuthuserKnowledgeprojectMap.setAuthUserId(authorizedUser.getId()); kbAuthuserKnowledgeprojectMap.setAuthUserId(authorizedUser.getId());
kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(authorizedUser.getKnowledgeProjectId()); kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(authorizedUser.getKnowledgeProjectId());
authuserKnowledgeprojectMapService.save(kbAuthuserKnowledgeprojectMap); authuserKnowledgeprojectMapService.save(kbAuthuserKnowledgeprojectMap);
/**插入用户角色关系表*/
if (StringUtils.isNotBlank(authorizedUser.getRoleId())){
String roleId = authorizedUser.getRoleId();
List<String> list = Arrays.asList(roleId.split(","));
List<KbUserRoleMap> maps = new ArrayList<>();
list.forEach(e->{
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId(authorizedUser.getId());
kbUserRoleMap.setRoleId(e);
maps.add(kbUserRoleMap);
});
kbUserRoleMapService.saveBatch(maps);
}
} }
return Result.OK(); return Result.OK();
} }
...@@ -103,50 +104,83 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap ...@@ -103,50 +104,83 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
} }
List<KbAuthorizedUser> kbAuthorizedUsers = authorizedUserMapper.selectList(Wrappers.<KbAuthorizedUser>lambdaQuery().in(KbAuthorizedUser::getUserId, authorizedUsers.stream().map(KbAuthorizedUser::getUserId).collect(Collectors.toList()))); List<KbAuthorizedUser> kbAuthorizedUsers = authorizedUserMapper.selectList(Wrappers.<KbAuthorizedUser>lambdaQuery().in(KbAuthorizedUser::getUserId, authorizedUsers.stream().map(KbAuthorizedUser::getUserId).collect(Collectors.toList())));
List<String> collect = kbAuthorizedUsers.stream().map(KbAuthorizedUser::getUserId).collect(Collectors.toList());
authorizedUsers.forEach(e-> { //已经授权过的用户在用户表里不用重复插入
List<String> collect = kbAuthorizedUsers.stream().map(KbAuthorizedUser::getUserId).collect(Collectors.toList()); List<KbAuthorizedUser> notExist = authorizedUsers.stream().filter(f -> !collect.contains(f.getUserId())).collect(Collectors.toList());
notExist.forEach(e-> {
/**保存授权用户*/ /**保存授权用户*/
e.setStatus("0"); e.setStatus("0");
e.setCreateTime(new Date()); e.setCreateTime(new Date());
}); });
super.saveBatch(authorizedUsers); super.saveBatch(notExist);
//获取这一批下面的其中一个用户,获取这批用户关联的知识库分类
KbAuthorizedUser kbAuthorizedUser = authorizedUsers.get(0); KbAuthorizedUser kbAuthorizedUser = authorizedUsers.get(0);
if (!"0".equals(kbAuthorizedUser.getKnowledgeProjectId())) {
List<KbKnowledgeProject> projectTypes = knowledgeProjectService.list(Wrappers.<KbKnowledgeProject>lambdaQuery().like(KbKnowledgeProject::getFullPath, kbAuthorizedUser.getKnowledgeProjectId())); //查询授权节点和其子节点,一起授权
List<KbKnowledgeProject> projectTypes = knowledgeProjectService.list(Wrappers.<KbKnowledgeProject>lambdaQuery().like(KbKnowledgeProject::getFullPath, kbAuthorizedUser.getKnowledgeProjectId()));
List<KbUserRoleMap> maps = new ArrayList<>(); List<KbUserRoleMap> maps = new ArrayList<>();
List<KbAuthuserKnowledgeprojectMap> userknows = new ArrayList<>(); List<KbAuthuserKnowledgeprojectMap> userknows = new ArrayList<>();
authorizedUsers.forEach(authorizedUser->{
/**插入用户知识库分类权限关系表*/
if (CollectionUtil.isNotEmpty(projectTypes)){
projectTypes.forEach(e -> {
KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap();
kbAuthuserKnowledgeprojectMap.setAuthUserId(authorizedUser.getId());
kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(e.getId());
kbAuthuserKnowledgeprojectMap.setSign(0);
userknows.add(kbAuthuserKnowledgeprojectMap);
/**插入用户角色关系表*/
if (StringUtils.isNotBlank(authorizedUser.getRoleId())){
String roleId = authorizedUser.getRoleId();
List<String> list = Arrays.asList(roleId.split(","));
list.forEach(ee->{
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId(authorizedUser.getId());
kbUserRoleMap.setRoleId(ee);
kbUserRoleMap.setKnowledgeProjectId(e.getId());
maps.add(kbUserRoleMap);
});
}
});
}
});
authorizedUsers.forEach(authorizedUser->{ kbUserRoleMapService.saveBatch(maps);
/**插入用户角色关系表*/ authuserKnowledgeprojectMapService.saveBatch(userknows);
if (StringUtils.isNotBlank(authorizedUser.getRoleId())){ }else {
String roleId = authorizedUser.getRoleId(); authorizedUsers.forEach(authorizedUser->{
List<String> list = Arrays.asList(roleId.split(",")); /**插入用户知识库权限关系表*/
list.forEach(e->{ if (StringUtils.isNotBlank(authorizedUser.getKnowledgeProjectId())){
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId(Long.parseLong(authorizedUser.getId()));
kbUserRoleMap.setRoleId(Long.parseLong(e));
maps.add(kbUserRoleMap);
});
}
/**插入用户知识库分类权限关系表*/
if (CollectionUtil.isNotEmpty(projectTypes)){
projectTypes.forEach(e -> {
KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap(); KbAuthuserKnowledgeprojectMap kbAuthuserKnowledgeprojectMap = new KbAuthuserKnowledgeprojectMap();
kbAuthuserKnowledgeprojectMap.setAuthUserId(authorizedUser.getId()); kbAuthuserKnowledgeprojectMap.setAuthUserId(authorizedUser.getId());
kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(e.getId()); kbAuthuserKnowledgeprojectMap.setKnowledgeProjectId(authorizedUser.getKnowledgeProjectId());
userknows.add(kbAuthuserKnowledgeprojectMap); authuserKnowledgeprojectMapService.save(kbAuthuserKnowledgeprojectMap);
});
}
/**插入用户角色关系表*/
} if (StringUtils.isNotBlank(authorizedUser.getRoleId())){
}); String roleId = authorizedUser.getRoleId();
List<String> list = Arrays.asList(roleId.split(","));
kbUserRoleMapService.saveBatch(maps); List<KbUserRoleMap> maps = new ArrayList<>();
authuserKnowledgeprojectMapService.saveBatch(userknows); list.forEach(e->{
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId(authorizedUser.getId());
kbUserRoleMap.setRoleId(e);
kbUserRoleMap.setKnowledgeProjectId(authorizedUser.getKnowledgeProjectId());
maps.add(kbUserRoleMap);
});
kbUserRoleMapService.saveBatch(maps);
}
});
}
return Result.OK(); return Result.OK();
...@@ -168,8 +202,8 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap ...@@ -168,8 +202,8 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
List<KbUserRoleMap> maps = new ArrayList<>(); List<KbUserRoleMap> maps = new ArrayList<>();
list.forEach(e->{ list.forEach(e->{
KbUserRoleMap kbUserRoleMap = new KbUserRoleMap(); KbUserRoleMap kbUserRoleMap = new KbUserRoleMap();
kbUserRoleMap.setUserId(Long.parseLong(authorizedUser.getId())); kbUserRoleMap.setUserId( authorizedUser.getId());
kbUserRoleMap.setRoleId(Long.parseLong(e)); kbUserRoleMap.setRoleId(e);
maps.add(kbUserRoleMap); maps.add(kbUserRoleMap);
}); });
kbUserRoleMapService.saveBatch(maps); kbUserRoleMapService.saveBatch(maps);
...@@ -215,6 +249,19 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap ...@@ -215,6 +249,19 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>(); QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>();
query.eq("a.user_id",bean.getUserId()); query.eq("a.user_id",bean.getUserId());
KbAuthorizedUser one = authorizedUserMapper.getOne(query); KbAuthorizedUser one = authorizedUserMapper.getOne(query);
/**是否是所有节点的管理员*/
List<KbAuthuserKnowledgeprojectMap> list1 = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery()
.eq(KbAuthuserKnowledgeprojectMap::getAuthUserId, one.getId())
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, "0")
.eq(KbAuthuserKnowledgeprojectMap::getSign, 0)
);
if (CollectionUtil.isNotEmpty(list1)){
one.setIsAll(0);
}else {
one.setIsAll(1);
}
List<KbRole> kbRoles = roleService.listByIds(Arrays.asList(one.getRoleId().split(","))); List<KbRole> kbRoles = roleService.listByIds(Arrays.asList(one.getRoleId().split(",")));
List<KbRolePermissionMap> permissionMaps = rolePermissionMapService.list(Wrappers.<KbRolePermissionMap>lambdaQuery().in(KbRolePermissionMap::getRoleId, Arrays.asList(one.getRoleId().split(",")))); List<KbRolePermissionMap> permissionMaps = rolePermissionMapService.list(Wrappers.<KbRolePermissionMap>lambdaQuery().in(KbRolePermissionMap::getRoleId, Arrays.asList(one.getRoleId().split(","))));
...@@ -284,6 +331,18 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap ...@@ -284,6 +331,18 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>(); QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>();
query.eq("a.user_id",bean.getUserId()); query.eq("a.user_id",bean.getUserId());
KbAuthorizedUser one = authorizedUserMapper.getOne(query); KbAuthorizedUser one = authorizedUserMapper.getOne(query);
/**是否是所有节点的管理员*/
List<KbAuthuserKnowledgeprojectMap> list1 = authuserKnowledgeprojectMapService.list(Wrappers.<KbAuthuserKnowledgeprojectMap>lambdaQuery()
.eq(KbAuthuserKnowledgeprojectMap::getAuthUserId, one.getId())
.eq(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId, "0")
.eq(KbAuthuserKnowledgeprojectMap::getSign, 0)
);
if (CollectionUtil.isNotEmpty(list1)){
one.setIsAll(0);
}else {
one.setIsAll(1);
}
return Result.OK(one); return Result.OK(one);
}else { }else {
return Result.error("第三方系统未通过用户校验"); return Result.error("第三方系统未通过用户校验");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论