Bläddra i källkod

feat: 大屏页面扩展接口新增方法:新增后拓展、删除后拓展,大屏权限扩展接口新增方法:根据权限过滤

大屏页面扩展接口新增方法:新增后拓展、删除后拓展,大屏权限扩展接口新增方法:根据权限过滤
hong.yang 1 år sedan
förälder
incheckning
442297cef9

+ 4 - 16
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<String> filterByPermission(List<String> 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) {

+ 1 - 10
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<String> filterByPermission(List<String> allCode) {
-        return allCode;
-    }
+    default void deleteByCode(String code) {}
 
     /**
      * 大屏新增后的处理, 可在此处处理权限等

+ 15 - 4
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<DataRoomPageDao, PageEn
     @Resource
     private DataRoomExtendClient dataRoomExtendClient;
 
+    @Resource
+    private DataRoomPermissionClient permissionClient;
+
     @Override
     public String add(DataRoomPageDTO bigScreenPageDTO) {
         if (StringUtils.isBlank(bigScreenPageDTO.getCode())) {
@@ -181,12 +185,19 @@ public class DataRoomPageServiceImpl extends ServiceImpl<DataRoomPageDao, PageEn
         queryWrapper.select(PageEntity::getCode);
         List<PageEntity> idEntityList = this.list(queryWrapper);
         if (idEntityList == null || idEntityList.isEmpty()) {
-            return new PageVO<>();
+            PageVO<PageEntity> pageVO = new PageVO<>();
+            pageVO.setList(Lists.newArrayList());
+            return pageVO;
+        }
+        List<String> codeList = idEntityList.stream().map(PageEntity::getCode).collect(Collectors.toList());
+        List<String> filterByPermission = permissionClient.filterByPermission(codeList);
+        if (filterByPermission == null || filterByPermission.isEmpty()) {
+            PageVO<PageEntity> pageVO = new PageVO<>();
+            pageVO.setList(Lists.newArrayList());
+            return pageVO;
         }
-        List<String> codeList = idEntityList.stream().map(PageEntity::getId).collect(Collectors.toList());
-        List<String> filterByPermission = dataRoomExtendClient.filterByPermission(codeList);
         LambdaQueryWrapper<PageEntity> reQueryWrapper =  new LambdaQueryWrapper<>();
-        if (codeList.size() == filterByPermission.size()) {
+        if (idEntityList.size() == filterByPermission.size()) {
             // 说明没有过滤掉任何一个, 按照原来的条件查询
             reQueryWrapper = queryWrapper;
         } else {

+ 17 - 3
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<String> filterByPermission(List<String> allCode) {
+        if (permissionService != null) {
+            return permissionService.filterByPermission(allCode);
+        }
+        return allCode;
+    }
+
+
 
 
 }

+ 9 - 0
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<String> filterByPermission(List<String> allCode) {
+        return allCode;
+    }
 
 }