Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
know-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
know-base
Commits
a288f6f9
提交
a288f6f9
authored
1月 16, 2024
作者:
chenshiqiang
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/master'
上级
959035c6
6e3bfa58
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
158 行增加
和
29 行删除
+158
-29
KbKnowledgeProjectController.java
...zsn/knowbase/controller/KbKnowledgeProjectController.java
+1
-1
KbAuthorizedUserMapper.java
...java/com/zzsn/knowbase/mapper/KbAuthorizedUserMapper.java
+19
-0
KbAuthorizedUserServiceImpl.java
...sn/knowbase/service/impl/KbAuthorizedUserServiceImpl.java
+68
-23
KbKnowledgeProjectServiceImpl.java
.../knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
+49
-5
UserKnowPermissionVo.java
src/main/java/com/zzsn/knowbase/vo/UserKnowPermissionVo.java
+21
-0
没有找到文件。
src/main/java/com/zzsn/knowbase/controller/KbKnowledgeProjectController.java
浏览文件 @
a288f6f9
...
...
@@ -57,7 +57,7 @@ public class KbKnowledgeProjectController {
public
Result
<?>
list
(
@RequestParam
(
name
=
"sign"
,
defaultValue
=
"1"
)
String
sign
,
@RequestParam
(
name
=
"category"
,
required
=
false
)
String
category
,
@RequestParam
(
name
=
"projectId"
,
required
=
false
)
String
projectId
,
@RequestParam
(
name
=
"projectId"
,
defaultValue
=
"0"
)
String
projectId
,
HttpServletRequest
httpServletRequest
){
if
(!
"1"
.
equals
(
sign
)){
...
...
src/main/java/com/zzsn/knowbase/mapper/KbAuthorizedUserMapper.java
浏览文件 @
a288f6f9
...
...
@@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.zzsn.knowbase.entity.KbAuthorizedUser
;
import
com.zzsn.knowbase.vo.UserKnowPermissionVo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
...
...
@@ -30,6 +33,22 @@ public interface KbAuthorizedUserMapper extends BaseMapper<KbAuthorizedUser> {
)
IPage
<
KbAuthorizedUser
>
pageList
(
Page
<
KbAuthorizedUser
>
page
,
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<
KbAuthorizedUser
>
query
);
@Select
(
"SELECT a.*,GROUP_CONCAT(b.role_id SEPARATOR ',') as roleId,GROUP_CONCAT(c.role_name SEPARATOR ',') as roleName, b.knowledge_project_id FROM kb_authorized_user a "
+
"LEFT JOIN kb_user_role_map b ON a.id = b.user_id "
+
"LEFT JOIN kb_role c ON c.id = b.role_id "
+
"${ew.customSqlSegment}"
+
"GROUP BY a.id"
)
List
<
KbAuthorizedUser
>
listByUserIdAndProId
(
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<
KbAuthorizedUser
>
query
);
@Select
(
"SELECT a.user_id,a.knowledge_project_id,a.role_id,b.role_code,b.role_name,d.permission_code,d.permission_name FROM kb_user_role_map a "
+
"LEFT JOIN kb_role b ON a.role_id = b.id "
+
"LEFT JOIN kb_role_permission_map c ON b.id = c.role_id "
+
"LEFT JOIN kb_permissions d ON c.permission_id = d.id "
+
"WHERE a.user_id = #{userId}"
)
List
<
UserKnowPermissionVo
>
getUserPermission
(
String
userId
);
@Select
(
"SELECT a.*,GROUP_CONCAT(b.role_id SEPARATOR ',') as roleId,GROUP_CONCAT(c.role_name SEPARATOR ',') as roleName FROM kb_authorized_user a "
+
"LEFT JOIN kb_user_role_map b ON a.id = b.user_id "
+
...
...
src/main/java/com/zzsn/knowbase/service/impl/KbAuthorizedUserServiceImpl.java
浏览文件 @
a288f6f9
...
...
@@ -389,36 +389,67 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
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
)
);
List
<
String
>
knowProIds
=
knowPros
.
stream
().
map
(
KbKnowledgeProject:
:
getId
).
collect
(
Collectors
.
toList
());
if
(!
"0"
.
equals
(
knowProId
))
{
/**修改用户角色关系表*/
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
())
.
in
(
KbUserRoleMap:
:
getKnowledgeProjectId
,
knowProIds
)
);
List
<
String
>
list
=
Arrays
.
asList
(
newRole
.
split
(
","
));
List
<
KbUserRoleMap
>
maps
=
new
ArrayList
<>();
list
.
forEach
(
e
->{
knowProIds
.
forEach
(
ee
->{
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
->{
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
);
}
}
else
{
kbUserRoleMapService
.
remove
(
Wrappers
.<
KbUserRoleMap
>
lambdaQuery
().
eq
(
KbUserRoleMap:
:
getUserId
,
authorizedUser
.
getId
()));
authuserKnowledgeprojectMapService
.
remove
(
Wrappers
.<
KbAuthuserKnowledgeprojectMap
>
lambdaQuery
().
eq
(
KbAuthuserKnowledgeprojectMap:
:
getAuthUserId
,
authorizedUser
.
getId
()));
kbAuthuserKnowMapService
.
remove
(
Wrappers
.<
KbAuthuserKnowMap
>
lambdaQuery
().
eq
(
KbAuthuserKnowMap:
:
getAuthUserId
,
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
())){
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
);
kbUserRoleMap
.
setKnowledgeProjectId
(
ee
);
kbUserRoleMap
.
setCreateDate
(
new
Date
());
kbUserRoleMap
.
setKnowledgeProjectId
(
authorizedUser
.
getKnowledgeProjectId
());
maps
.
add
(
kbUserRoleMap
);
});
});
kbUserRoleMapService
.
saveBatch
(
maps
);
kbUserRoleMapService
.
saveBatch
(
maps
);
}
}
return
Result
.
OK
();
}
...
...
@@ -460,9 +491,17 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
}
/**查询授权用户的角色和权限*/
UserInfoVo
userInfoVo
=
new
UserInfoVo
();
/**查询授权用户,“所有”节点的角色优先*/
QueryWrapper
<
KbAuthorizedUser
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"a.user_id"
,
bean
.
getUserId
());
query
.
eq
(
"b.knowledge_project_id"
,
"0"
);
KbAuthorizedUser
one
=
authorizedUserMapper
.
getOne
(
query
);
if
(
ObjectUtil
.
isEmpty
(
one
)
||
StringUtils
.
isBlank
(
one
.
getRoleId
())){
QueryWrapper
<
KbAuthorizedUser
>
query1
=
new
QueryWrapper
<>();
query
.
eq
(
"a.user_id"
,
bean
.
getUserId
());
one
=
authorizedUserMapper
.
getOne
(
query1
);
}
/**是否是所有节点的管理员*/
List
<
KbAuthuserKnowledgeprojectMap
>
list1
=
authuserKnowledgeprojectMapService
.
list
(
Wrappers
.<
KbAuthuserKnowledgeprojectMap
>
lambdaQuery
()
.
eq
(
KbAuthuserKnowledgeprojectMap:
:
getAuthUserId
,
one
.
getId
())
...
...
@@ -503,7 +542,7 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
@Override
public
Result
<?>
thirdpartyUsers
(
String
token
,
String
name
,
String
username
,
String
knowledgeProjectId
,
Integer
pageNum
,
Integer
pageSize
)
{
//查询出这个节点已经受过权的用户
List
<
KbAuthuserKnowledgeprojectMap
>
list1
=
authuserKnowledgeprojectMapService
.
list
(
Wrappers
.<
KbAuthuserKnowledgeprojectMap
>
lambdaQuery
().
and
(
i
->
i
.
eq
(
KbAuthuserKnowledgeprojectMap:
:
getKnowledgeProjectId
,
knowledgeProjectId
).
or
().
eq
(
KbAuthuserKnowledgeprojectMap:
:
getKnowledgeProjectId
,
"0"
)
));
List
<
KbAuthuserKnowledgeprojectMap
>
list1
=
authuserKnowledgeprojectMapService
.
list
(
Wrappers
.<
KbAuthuserKnowledgeprojectMap
>
lambdaQuery
().
eq
(
KbAuthuserKnowledgeprojectMap:
:
getKnowledgeProjectId
,
knowledgeProjectId
));
StringBuffer
exists
=
new
StringBuffer
();
if
(
CollectionUtil
.
isNotEmpty
(
list1
)){
List
<
String
>
collect
=
list1
.
stream
().
map
(
KbAuthuserKnowledgeprojectMap:
:
getAuthUserId
).
collect
(
Collectors
.
toList
());
...
...
@@ -557,10 +596,16 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
if
(
CollectionUtil
.
isEmpty
(
list
))
{
return
Result
.
error
(
"该用户还未进行授权访问,请联系管理员进行授权"
);
}
/**查询授权用户*/
/**查询授权用户
,“所有”节点的角色优先
*/
QueryWrapper
<
KbAuthorizedUser
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"a.user_id"
,
bean
.
getUserId
());
query
.
eq
(
"b.knowledge_project_id"
,
"0"
);
KbAuthorizedUser
one
=
authorizedUserMapper
.
getOne
(
query
);
if
(
ObjectUtil
.
isEmpty
(
one
)
||
StringUtils
.
isBlank
(
one
.
getRoleId
())){
QueryWrapper
<
KbAuthorizedUser
>
query1
=
new
QueryWrapper
<>();
query
.
eq
(
"a.user_id"
,
bean
.
getUserId
());
one
=
authorizedUserMapper
.
getOne
(
query1
);
}
/**是否是所有节点的管理员*/
List
<
KbAuthuserKnowledgeprojectMap
>
list1
=
authuserKnowledgeprojectMapService
.
list
(
Wrappers
.<
KbAuthuserKnowledgeprojectMap
>
lambdaQuery
()
.
eq
(
KbAuthuserKnowledgeprojectMap:
:
getAuthUserId
,
one
.
getId
())
...
...
src/main/java/com/zzsn/knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
浏览文件 @
a288f6f9
...
...
@@ -9,11 +9,13 @@ 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.*
;
import
com.zzsn.knowbase.mapper.KbAuthorizedUserMapper
;
import
com.zzsn.knowbase.mapper.KbKnowledgeProjectMapper
;
import
com.zzsn.knowbase.mapper.KbUserRoleMapMapper
;
import
com.zzsn.knowbase.service.*
;
import
com.zzsn.knowbase.util.SpringContextUtils
;
import
com.zzsn.knowbase.vo.Result
;
import
com.zzsn.knowbase.vo.UserKnowPermissionVo
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -54,6 +56,8 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
KbPermissionsService
permissionsService
;
@Autowired
KbRoleService
roleService
;
@Autowired
KbAuthorizedUserMapper
authorizedUserMapper
;
@Override
@Transactional
public
Result
<?>
add
(
KbKnowledgeProject
knowledgeProject
)
{
...
...
@@ -147,6 +151,9 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
}
}
super
.
updateBatchById
(
list
);
}
else
{
knowledgeProject
.
setUpdateTime
(
new
Date
());
super
.
updateById
(
knowledgeProject
);
}
return
Result
.
OK
();
...
...
@@ -169,7 +176,7 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
if
(
0
==
userInfo
.
getIsAll
())
{
List
<
KbKnowledgeProject
>
kbKnowledgeProjects
;
if
(
"1"
.
equals
(
sign
)&&
StringUtils
.
isBlank
(
projectId
)){
if
(
"1"
.
equals
(
sign
)&&
"0"
.
equals
(
projectId
)){
kbKnowledgeProjects
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
.
eq
(
KbKnowledgeProject:
:
getPid
,
KbKnowledgeProjectService
.
ROOT_PID_VALUE
)
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
));
...
...
@@ -179,13 +186,50 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
.
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"
));
List
<
KbRole
>
list
=
roleService
.
list
(
Wrappers
.<
KbRole
>
lambdaQuery
().
eq
(
KbRole:
:
getId
,
userInfo
.
getRoleId
()));
List
<
KbRolePermissionMap
>
permissionMaps
=
rolePermissionMapService
.
list
(
Wrappers
.<
KbRolePermissionMap
>
lambdaQuery
().
in
(
KbRolePermissionMap:
:
getRoleId
,
list
.
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
())));
kbKnowledgeProjects
.
forEach
(
e
->
{
e
.
set
Permission
s
(
list
);
e
.
set
Roles
(
rManager
);
e
.
set
Role
s
(
list
);
e
.
set
Permissions
(
permissions
);
});
//查询此用户,在其他节点有无特殊权限
List
<
UserKnowPermissionVo
>
res
=
authorizedUserMapper
.
getUserPermission
(
userInfo
.
getId
());
List
<
UserKnowPermissionVo
>
collect
=
res
.
stream
().
filter
(
f
->
!
"0"
.
equals
(
f
.
getKnowledgeProjectId
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtil
.
isNotEmpty
(
collect
)){
//其他节点有额外权限
kbKnowledgeProjects
.
forEach
(
e
->
{
List
<
UserKnowPermissionVo
>
collect1
=
collect
.
stream
().
filter
(
f
->
f
.
getKnowledgeProjectId
().
equals
(
e
.
getId
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtil
.
isNotEmpty
(
collect1
)){
Map
<
String
,
List
<
UserKnowPermissionVo
>>
collect2
=
collect1
.
stream
().
collect
(
Collectors
.
groupingBy
(
UserKnowPermissionVo:
:
getRoleId
));
List
<
KbRole
>
roles
=
new
ArrayList
<>();
List
<
KbPermissions
>
permissionsList
=
new
ArrayList
<>();
collect2
.
forEach
((
key
,
v
)->{
KbRole
kbRole
=
new
KbRole
();
kbRole
.
setRoleCode
(
v
.
get
(
0
).
getRoleCode
());
kbRole
.
setRoleName
(
v
.
get
(
0
).
getRoleName
());
kbRole
.
setId
(
key
);
roles
.
add
(
kbRole
);
v
.
forEach
(
p
->
{
KbPermissions
kbPermission
=
new
KbPermissions
();
kbPermission
.
setId
(
p
.
getPermissionId
());
kbPermission
.
setPermissionCode
(
p
.
getPermissionCode
());
kbPermission
.
setPermissionName
(
p
.
getPermissionName
());
permissionsList
.
add
(
kbPermission
);
});
});
e
.
setRoles
(
roles
);
e
.
setPermissions
(
permissionsList
);
}
});
}
return
Result
.
OK
(
kbKnowledgeProjects
);
}
else
{
List
<
KbKnowledgeProject
>
kbKnowledgeProjects
;
String
userId
=
userInfo
.
getId
();
...
...
src/main/java/com/zzsn/knowbase/vo/UserKnowPermissionVo.java
0 → 100644
浏览文件 @
a288f6f9
package
com
.
zzsn
.
knowbase
.
vo
;
import
lombok.Data
;
/**
* Description:
*
* @author: EDY
* @since: 2024/1/16
*/
@Data
public
class
UserKnowPermissionVo
{
private
String
userId
;
private
String
knowledgeProjectId
;
private
String
roleId
;
private
String
roleCode
;
private
String
roleName
;
private
String
permissionCode
;
private
String
permissionName
;
private
String
permissionId
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论