Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
know-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
know-base
Commits
d9ddfde4
提交
d9ddfde4
authored
1月 13, 2024
作者:
obcy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
左侧树查询
上级
f929b1ea
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
97 行增加
和
20 行删除
+97
-20
KbKnowledgeProject.java
...ain/java/com/zzsn/knowbase/entity/KbKnowledgeProject.java
+5
-2
KbUserRoleMapMapper.java
...in/java/com/zzsn/knowbase/mapper/KbUserRoleMapMapper.java
+13
-0
KbKnowledgeProjectServiceImpl.java
.../knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
+79
-18
没有找到文件。
src/main/java/com/zzsn/knowbase/entity/KbKnowledgeProject.java
浏览文件 @
d9ddfde4
...
...
@@ -9,6 +9,7 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
...
...
@@ -99,10 +100,12 @@ public class KbKnowledgeProject extends Model<KbKnowledgeProject> {
@TableField
(
"project_description"
)
private
String
projectDescription
;
/**
* 用户在这个节点的角色
* 用户在这个节点的角色
和权限
*/
@TableField
(
exist
=
false
)
private
String
role_code
;
private
List
<
KbRole
>
roles
;
@TableField
(
exist
=
false
)
private
List
<
KbPermissions
>
permissions
;
...
...
src/main/java/com/zzsn/knowbase/mapper/KbUserRoleMapMapper.java
浏览文件 @
d9ddfde4
package
com
.
zzsn
.
knowbase
.
mapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
com.zzsn.knowbase.entity.KbAuthorizedUser
;
import
com.zzsn.knowbase.entity.KbRole
;
import
com.zzsn.knowbase.entity.KbUserRoleMap
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
/**
* <p>
...
...
@@ -15,4 +23,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public
interface
KbUserRoleMapMapper
extends
BaseMapper
<
KbUserRoleMap
>
{
@Select
(
"SELECT b.* FROM kb_user_role_map a LEFT JOIN kb_role b ON a.role_id = b.id "
+
"${ew.customSqlSegment}"
)
List
<
KbRole
>
getRoles
(
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<
KbAuthorizedUser
>
query
);
}
src/main/java/com/zzsn/knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
浏览文件 @
d9ddfde4
...
...
@@ -2,19 +2,16 @@ 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
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.zzsn.knowbase.entity.KbAuthorizedUser
;
import
com.zzsn.knowbase.entity.KbAuthuserKnowMap
;
import
com.zzsn.knowbase.entity.KbAuthuserKnowledgeprojectMap
;
import
com.zzsn.knowbase.entity.KbKnowledgeProject
;
import
com.zzsn.knowbase.entity.*
;
import
com.zzsn.knowbase.mapper.KbKnowledgeProjectMapper
;
import
com.zzsn.knowbase.service.KbAuthorizedUserService
;
import
com.zzsn.knowbase.service.KbAuthuserKnowMapService
;
import
com.zzsn.knowbase.service.KbAuthuserKnowledgeprojectMapService
;
import
com.zzsn.knowbase.service.KbKnowledgeProjectService
;
import
com.zzsn.knowbase.mapper.KbUserRoleMapMapper
;
import
com.zzsn.knowbase.service.*
;
import
com.zzsn.knowbase.util.SpringContextUtils
;
import
com.zzsn.knowbase.vo.Result
;
import
org.apache.commons.lang3.ObjectUtils
;
...
...
@@ -45,9 +42,18 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
KbAuthuserKnowledgeprojectMapService
authuserKnowledgeprojectMapService
;
@Autowired
KbAuthuserKnowMapService
kbAuthuserKnowMapService
;
@Autowired
KbUserRoleMapService
kbUserRoleMapService
;
@Autowired
KbUserRoleMapMapper
userRoleMapMapper
;
@Autowired
private
KbAuthuserKnowMapService
authuserKnowMapService
;
@Autowired
KbRolePermissionMapService
rolePermissionMapService
;
@Autowired
KbPermissionsService
permissionsService
;
@Autowired
KbRoleService
roleService
;
@Override
@Transactional
public
Result
<?>
add
(
KbKnowledgeProject
knowledgeProject
)
{
...
...
@@ -166,32 +172,87 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
return
Result
.
OK
(
kbKnowledgeProjects
);
}
else
{
List
<
KbKnowledgeProject
>
kbKnowledgeProjects
;
String
userId
=
userInfo
.
getId
();
if
(
"1"
.
equals
(
sign
)&&
StringUtils
.
isBlank
(
projectId
)){
String
id
=
userInfo
.
getId
();
List
<
KbAuthuserKnowledgeprojectMap
>
list
=
authuserKnowledgeprojectMapService
.
list
(
Wrappers
.<
KbAuthuserKnowledgeprojectMap
>
lambdaQuery
()
.
eq
(
KbAuthuserKnowledgeprojectMap:
:
getAuthUserId
,
i
d
)
.
eq
(
KbAuthuserKnowledgeprojectMap:
:
getAuthUserId
,
userI
d
)
);
List
<
KbKnowledgeProject
>
list1
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
List
<
KbKnowledgeProject
>
allknowProjectPermissId
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
.
in
(
KbKnowledgeProject:
:
getId
,
list
.
stream
().
map
(
KbAuthuserKnowledgeprojectMap:
:
getKnowledgeProjectId
).
collect
(
Collectors
.
toList
()))
);
list1
.
forEach
(
e
->
{
String
s
=
e
.
getFullPath
().
split
(
","
)[
0
];
//查询出所有需要展示的节点
Set
<
String
>
hasViewId
=
new
HashSet
<>();
allknowProjectPermissId
.
forEach
(
e
->
{
Arrays
.
asList
(
e
.
getFullPath
().
split
(
","
)).
forEach
(
ee
->{
hasViewId
.
add
(
ee
);
});
});
if
(
"1"
.
equals
(
sign
)&&
StringUtils
.
isBlank
(
projectId
)){
kbKnowledgeProjects
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
.
eq
(
KbKnowledgeProject:
:
getPid
,
KbKnowledgeProjectService
.
ROOT_PID_VALUE
)
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
));
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
)
.
in
(
KbKnowledgeProject:
:
getId
,
hasViewId
));
}
else
{
kbKnowledgeProjects
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
.
eq
(
KbKnowledgeProject:
:
getPid
,
projectId
)
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
));
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
)
.
in
(
KbKnowledgeProject:
:
getId
,
hasViewId
));
}
//查询用户在每个节点对应的权限
// Map<Long, KbRolePermissionMap> rolePermissionMap = rolePermissionMapService.list().stream().collect(Collectors.toMap(KbRolePermissionMap::getId, e -> e));
// Map<String, KbPermissions> permissions = permissionsService.list().stream().collect(Collectors.toMap(KbPermissions::getId, e -> e));
// List<String> ids = allknowProjectPermissId.stream().map(KbKnowledgeProject::getId).collect(Collectors.toList());
Map
<
String
,
KbKnowledgeProject
>
collect
=
allknowProjectPermissId
.
stream
().
collect
(
Collectors
.
toMap
(
KbKnowledgeProject:
:
getId
,
e
->
e
));
// List<KbUserRoleMap> allIdsRoles = kbUserRoleMapService.list(Wrappers.<KbUserRoleMap>lambdaQuery().eq(KbUserRoleMap::getUserId, userId).in(KbUserRoleMap::getKnowledgeProjectId, ids));
//// Map<String, KbUserRoleMap> collect1 = allIdsRoles.stream().collect(Collectors.toMap(KbUserRoleMap::getKnowledgeProjectId, e -> e));
// Map<String, List<KbUserRoleMap>> collect1 = allIdsRoles.stream().collect(Collectors.groupingBy(KbUserRoleMap::getKnowledgeProjectId));
// Map<String, List<KbRole>> collect2 = new HashMap<>();
// collect1.forEach((k,v)->{
// List<String> collect3 = v.stream().map(KbUserRoleMap::getRoleId).collect(Collectors.toList());
// });
// List<KbRolePermissionMap> permissionMaps = rolePermissionMapService.list(Wrappers.<KbRolePermissionMap>lambdaQuery().in(KbRolePermissionMap::getRoleId, Arrays.asList(one.getRoleId().split(","))));
// List<KbPermissions> permissions = permissionsService.list(Wrappers.<KbPermissions>lambdaQuery().in(KbPermissions::getId, permissionMaps.stream().map(KbRolePermissionMap::getPermissionId).collect(Collectors.toList())));
kbKnowledgeProjects
.
forEach
(
e
->{
KbKnowledgeProject
kbKnowledgeProject
=
collect
.
get
(
e
.
getId
());
if
(
ObjectUtil
.
isNotEmpty
(
kbKnowledgeProject
)){
QueryWrapper
<
KbAuthorizedUser
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"a.user_id"
,
userId
);
query
.
eq
(
"a.knowledge_project_id"
,
e
.
getId
());
e
.
setRoles
(
userRoleMapMapper
.
getRoles
(
query
));
}
if
(
CollectionUtil
.
isNotEmpty
(
e
.
getRoles
())){
List
<
KbRolePermissionMap
>
permissionMaps
=
rolePermissionMapService
.
list
(
Wrappers
.<
KbRolePermissionMap
>
lambdaQuery
().
in
(
KbRolePermissionMap:
:
getRoleId
,
e
.
getRoles
().
stream
().
map
(
KbRole:
:
getId
).
collect
(
Collectors
.
toList
())));
List
<
KbPermissions
>
permissions
=
permissionsService
.
list
(
Wrappers
.<
KbPermissions
>
lambdaQuery
().
in
(
KbPermissions:
:
getId
,
permissionMaps
.
stream
().
map
(
KbRolePermissionMap:
:
getPermissionId
).
collect
(
Collectors
.
toList
())));
e
.
setPermissions
(
permissions
);
}
});
return
Result
.
OK
(
kbKnowledgeProjects
);
}
}
private
Set
<
String
>
getHasPermissId
(
String
userId
)
{
List
<
KbAuthuserKnowledgeprojectMap
>
list
=
authuserKnowledgeprojectMapService
.
list
(
Wrappers
.<
KbAuthuserKnowledgeprojectMap
>
lambdaQuery
()
.
eq
(
KbAuthuserKnowledgeprojectMap:
:
getAuthUserId
,
userId
)
);
List
<
KbKnowledgeProject
>
list1
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
.
in
(
KbKnowledgeProject:
:
getId
,
list
.
stream
().
map
(
KbAuthuserKnowledgeprojectMap:
:
getKnowledgeProjectId
).
collect
(
Collectors
.
toList
()))
);
Set
<
String
>
hasPermissId
=
new
HashSet
<>();
list1
.
forEach
(
e
->
{
Arrays
.
asList
(
e
.
getFullPath
().
split
(
","
)).
forEach
(
ee
->{
hasPermissId
.
add
(
ee
);
});
});
return
hasPermissId
;
}
@Override
public
List
<
KbKnowledgeProject
>
getTreeListBy
(
String
id
)
{
return
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
KbKnowledgeProject
>()
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论