From 3c6102b614930269ec2d5fdea28afec24aea441d Mon Sep 17 00:00:00 2001
From: CD <1103614279@qq.com>
Date: Wed, 16 Nov 2022 14:35:08 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8=E6=9D=83?=
=?UTF-8?q?=E9=99=90=E7=AD=9B=E6=9F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../xml/ProjectUserPermissionMapper.xml | 2 +-
.../impl/ProjectLibraryBaseServiceImpl.java | 41 ++++++++++++++++++-
2 files changed, 40 insertions(+), 3 deletions(-)
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectUserPermissionMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectUserPermissionMapper.xml
index c64841878..6fb5c10ed 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectUserPermissionMapper.xml
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectUserPermissionMapper.xml
@@ -15,7 +15,7 @@
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java
index ef13c9a91..c7ebc0e55 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java
@@ -722,7 +722,11 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl queryPageList(Map params) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//根据项目用户权限表筛选有权访问的项目
- Set projectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
+ Set projectIds = new HashSet<>();
+ Set permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
+ if (ObjectUtils.isNotEmpty(permissionProjectIds)) {
+ projectIds.addAll(permissionProjectIds);
+ }
if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) {
//如果是Viewer,根据配置的品牌筛选可访问的项目
List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
@@ -819,7 +823,40 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl resultLast = new ArrayList<>();
+ for (ProjectLibraryBase projectLibraryBase : resultNew) {
+ //判断父项目是否有权限
+ if (!projectIds.contains(projectLibraryBase.getId())) {
+ //判断子项目是否有权限
+ List children = projectLibraryBase.getChildren();
+ if (ObjectUtils.isNotEmpty(children)) {
+ for (ProjectLibraryBase child : children) {
+ //将有权限的放入最后返回的集合中
+ if (projectIds.contains(child.getId())) {
+ resultLast.add(child);
+ }
+ }
+ }
+ } else {
+ List children = projectLibraryBase.getChildren();
+ if (ObjectUtils.isNotEmpty(children)) {
+ List lastChild = new ArrayList<>();
+ //判断子项目是否有权限
+ for (ProjectLibraryBase child : children) {
+ if (projectIds.contains(child.getId())) {
+ lastChild.add(child);
+ }
+ }
+ projectLibraryBase.setChildren(lastChild);
+ }
+ resultLast.add(projectLibraryBase);
+ }
+
+ }
+
+ return resultLast;
}
@NotNull