diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/DataRoomExtendClient.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/DataRoomExtendClient.java index 619d226f..4d1d81b6 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/DataRoomExtendClient.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/DataRoomExtendClient.java @@ -28,20 +28,8 @@ public class DataRoomExtendClient { } /** - * 根据权限过滤 - * @param allCode 全部的大屏id - * @return 当前用户有权限的大屏id - */ - public List filterByPermission(List allCode) { - if (extendService != null) { - return extendService.filterByPermission(allCode); - } - return allCode; - } - - /** - * 大屏新增后的权限处理 - * @param code 新增的大屏id + * 大屏新增后的处理 + * @param code 新增的大屏code */ public void afterAdd(String code) { if (extendService != null) { @@ -50,8 +38,8 @@ public class DataRoomExtendClient { } /** - * 大屏删除后的权限处理 - * @param code 删除的大屏id + * 大屏删除后的处理 + * @param code 删除的大屏code */ public void afterDelete(String code) { if (extendService != null) { diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/IDataRoomExtendService.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/IDataRoomExtendService.java index 9b78e33b..2bdd8fdd 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/IDataRoomExtendService.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/extend/IDataRoomExtendService.java @@ -17,16 +17,7 @@ public interface IDataRoomExtendService { * @param code */ @Deprecated - void deleteByCode(String code); - - /** - * 根据权限过滤 - * @param allCode 全部的大屏code - * @return 当前用户有权限的大屏code - */ - default List filterByPermission(List allCode) { - return allCode; - } + default void deleteByCode(String code) {} /** * 大屏新增后的处理, 可在此处处理权限等 diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java index b8751b9b..6664c85c 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java @@ -14,6 +14,7 @@ import com.gccloud.dataroom.core.module.manage.extend.DataRoomExtendClient; import com.gccloud.dataroom.core.module.manage.service.IDataRoomPageService; import com.gccloud.dataroom.core.module.template.entity.PageTemplateEntity; import com.gccloud.dataroom.core.module.template.service.IPageTemplateService; +import com.gccloud.dataroom.core.permission.DataRoomPermissionClient; import com.gccloud.dataroom.core.utils.CodeGenerateUtils; import com.gccloud.common.exception.GlobalException; import com.gccloud.common.utils.AssertUtils; @@ -54,6 +55,9 @@ public class DataRoomPageServiceImpl extends ServiceImpl idEntityList = this.list(queryWrapper); if (idEntityList == null || idEntityList.isEmpty()) { - return new PageVO<>(); + PageVO pageVO = new PageVO<>(); + pageVO.setList(Lists.newArrayList()); + return pageVO; + } + List codeList = idEntityList.stream().map(PageEntity::getCode).collect(Collectors.toList()); + List filterByPermission = permissionClient.filterByPermission(codeList); + if (filterByPermission == null || filterByPermission.isEmpty()) { + PageVO pageVO = new PageVO<>(); + pageVO.setList(Lists.newArrayList()); + return pageVO; } - List codeList = idEntityList.stream().map(PageEntity::getId).collect(Collectors.toList()); - List filterByPermission = dataRoomExtendClient.filterByPermission(codeList); LambdaQueryWrapper reQueryWrapper = new LambdaQueryWrapper<>(); - if (codeList.size() == filterByPermission.size()) { + if (idEntityList.size() == filterByPermission.size()) { // 说明没有过滤掉任何一个, 按照原来的条件查询 reQueryWrapper = queryWrapper; } else { diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/DataRoomPermissionClient.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/DataRoomPermissionClient.java index 646e6328..fd75bcc7 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/DataRoomPermissionClient.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/DataRoomPermissionClient.java @@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * @author hongyang @@ -14,7 +15,7 @@ import javax.servlet.http.HttpServletRequest; public class DataRoomPermissionClient { @Autowired(required = false) - private IDataRoomPermissionService tokenService; + private IDataRoomPermissionService permissionService; /** @@ -25,13 +26,26 @@ public class DataRoomPermissionClient { */ public boolean verifyDataPermission(HttpServletRequest request, String pageCode) { boolean verify = true; - if (tokenService != null) { - verify = tokenService.verifyDataPermission(request, pageCode); + if (permissionService != null) { + verify = permissionService.verifyDataPermission(request, pageCode); } return verify; } + /** + * 根据权限过滤 + * @param allCode 全部的大屏code + * @return 当前用户有权限的大屏code + */ + public List filterByPermission(List allCode) { + if (permissionService != null) { + return permissionService.filterByPermission(allCode); + } + return allCode; + } + + } diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/IDataRoomPermissionService.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/IDataRoomPermissionService.java index 152651e5..c226eb88 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/IDataRoomPermissionService.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/IDataRoomPermissionService.java @@ -2,6 +2,7 @@ package com.gccloud.dataroom.core.permission; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * @author hongyang @@ -18,5 +19,13 @@ public interface IDataRoomPermissionService { */ boolean verifyDataPermission(HttpServletRequest request, String pageCode); + /** + * 根据权限过滤 + * @param allCode 全部的大屏code + * @return 当前用户有权限的大屏code + */ + default List filterByPermission(List allCode) { + return allCode; + } }