From 904aa2c3351f94f394054d3cd6e56b277775b942 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 22 Nov 2024 17:52:42 +0800 Subject: [PATCH] =?UTF-8?q?perf(X-Pack):=20=E5=AE=98=E6=96=B9=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E7=89=88=E4=BB=85=E5=B1=95=E7=A4=BA=E6=B8=B8=E7=A6=BB?= =?UTF-8?q?=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetGroupManage.java | 7 +++-- .../datasource/manage/DataSourceManage.java | 7 ++++- .../share/manage/XpackShareManage.java | 6 +++- .../manage/CoreVisualizationManage.java | 14 +++++++-- .../manage/VisualizationStoreManage.java | 9 ++++-- de-xpack | 2 +- .../java/io/dataease/api/free/FreeApi.java | 28 +++++++++++++++++ .../api/free/dto/FreeBatchDelRequest.java | 17 +++++++++++ .../api/free/dto/FreeBatchSyncRequest.java | 18 +++++++++++ .../api/free/dto/FreeQueryRequest.java | 14 +++++++++ .../api/free/dto/FreeSyncRequest.java | 14 +++++++++ .../java/io/dataease/api/free/vo/FreeVO.java | 30 +++++++++++++++++++ .../io/dataease/utils/CommunityUtils.java | 16 ++++++++++ 13 files changed, 172 insertions(+), 10 deletions(-) create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchDelRequest.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchSyncRequest.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeQueryRequest.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeSyncRequest.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/free/vo/FreeVO.java create mode 100644 sdk/common/src/main/java/io/dataease/utils/CommunityUtils.java diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java index 52db3e5c46..1204c6250a 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java @@ -222,14 +222,17 @@ public class DatasetGroupManage { } - @XpackInteract(value = "authResourceTree", replace = true) + @XpackInteract(value = "authResourceTree", replace = true, invalid = true) public List tree(BusiNodeRequest request) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (ObjectUtils.isNotEmpty(request.getLeaf())) { queryWrapper.eq("node_type", request.getLeaf() ? "dataset" : "folder"); } - + String info = CommunityUtils.getInfo(); + if (StringUtils.isNotBlank(info)) { + queryWrapper.notExists(String.format(info, "core_dataset_group.id")); + } queryWrapper.orderByDesc("create_time"); List pos = coreDataSetExtMapper.query(queryWrapper); List nodes = new ArrayList<>(); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java b/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java index 648effd623..a5c0a94e14 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java @@ -19,6 +19,7 @@ import io.dataease.model.BusiNodeVO; import io.dataease.operation.manage.CoreOptRecentManage; import io.dataease.utils.AuthUtils; import io.dataease.utils.BeanUtils; +import io.dataease.utils.CommunityUtils; import io.dataease.utils.TreeUtils; import jakarta.annotation.Resource; import org.apache.commons.collections4.CollectionUtils; @@ -56,13 +57,17 @@ public class DataSourceManage { return new DatasourceNodeBO(po.getId(), po.getName(), !StringUtils.equals(po.getType(), "folder"), 7, po.getPid(), extraFlag, dataSourceType.name()); } - @XpackInteract(value = "datasourceResourceTree", replace = true) + @XpackInteract(value = "datasourceResourceTree", replace = true, invalid = true) public List tree(BusiNodeRequest request) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (ObjectUtils.isNotEmpty(request.getLeaf()) && !request.getLeaf()) { queryWrapper.eq("type", "folder"); } + String info = CommunityUtils.getInfo(); + if (StringUtils.isNotBlank(info)) { + queryWrapper.notExists(String.format(info, "core_datasource.id")); + } queryWrapper.orderByDesc("create_time"); List nodes = new ArrayList<>(); List pos = dataSourceExtMapper.selectList(queryWrapper); diff --git a/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java b/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java index 60aeaf8f32..10f3529f00 100644 --- a/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java +++ b/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java @@ -166,6 +166,10 @@ public class XpackShareManage { if (StringUtils.isNotBlank(request.getKeyword())) { queryWrapper.like("v.name", request.getKeyword()); } + String info = CommunityUtils.getInfo(); + if (StringUtils.isNotBlank(info)) { + queryWrapper.notExists(String.format(info, "s.resource_id")); + } queryWrapper.orderBy(true, request.isAsc(), "s.time"); Page page = new Page<>(goPage, pageSize); return xpackShareExtMapper.query(page, queryWrapper); @@ -179,7 +183,7 @@ public class XpackShareManage { }; } - @XpackInteract(value = "perFilterShareManage", recursion = true) + @XpackInteract(value = "perFilterShareManage", recursion = true, invalid = true) public IPage query(int pageNum, int pageSize, VisualizationWorkbranchQueryRequest request) { IPage poiPage = proxy().querySharePage(pageNum, pageSize, request); List vos = proxy().formatResult(poiPage.getRecords()); diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java index ff95c68ec8..08749ef3b0 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java @@ -48,7 +48,7 @@ public class CoreVisualizationManage { @Resource private CoreOptRecentManage coreOptRecentManage; - @XpackInteract(value = "visualizationResourceTree", replace = true) + @XpackInteract(value = "visualizationResourceTree", replace = true, invalid = true) public List tree(BusiNodeRequest request) { List nodes = new ArrayList<>(); if (ObjectUtils.isEmpty(request.getLeaf()) || !request.getLeaf()) { @@ -59,6 +59,10 @@ public class CoreVisualizationManage { queryWrapper.ne("pid", -1); queryWrapper.eq(ObjectUtils.isNotEmpty(request.getLeaf()), "node_type", ObjectUtils.isNotEmpty(request.getLeaf()) && request.getLeaf() ? "leaf" : "folder"); queryWrapper.eq("type", request.getBusiFlag()); + String info = CommunityUtils.getInfo(); + if (StringUtils.isNotBlank(info)) { + queryWrapper.notExists(String.format(info, "data_visualization_info.id")); + } queryWrapper.orderByDesc("create_time"); List pos = extMapper.queryNodes(queryWrapper); if (CollectionUtils.isNotEmpty(pos)) { @@ -158,7 +162,7 @@ public class CoreVisualizationManage { return CommonBeanFactory.getBean(this.getClass()); } - @XpackInteract(value = "perFilterManage", recursion = true) + @XpackInteract(value = "perFilterManage", recursion = true, invalid = true) public IPage query(int pageNum, int pageSize, VisualizationWorkbranchQueryRequest request) { IPage visualizationResourcePOPageIPage = proxy().queryVisualizationPage(pageNum, pageSize, request); if (ObjectUtils.isEmpty(visualizationResourcePOPageIPage)) { @@ -182,7 +186,7 @@ public class CoreVisualizationManage { new VisualizationResourceVO( po.getId(), po.getResourceId(), po.getName(), po.getType(), String.valueOf(po.getCreator()), String.valueOf(po.getLastEditor()), po.getLastEditTime(), - po.getFavorite(), 9,po.getExtFlag())).toList(); + po.getFavorite(), 9, po.getExtFlag())).toList(); } public IPage queryVisualizationPage(int goPage, int pageSize, VisualizationWorkbranchQueryRequest request) { @@ -198,6 +202,10 @@ public class CoreVisualizationManage { if (StringUtils.isNotBlank(request.getKeyword())) { queryWrapper.like("dvResource.name", request.getKeyword()); } + String info = CommunityUtils.getInfo(); + if (StringUtils.isNotBlank(info)) { + queryWrapper.notExists(String.format(info, "core_opt_recent.resource_id")); + } queryWrapper.orderBy(true, request.isAsc(), "core_opt_recent.time"); Page page = new Page<>(goPage, pageSize); return extDataVisualizationMapper.findRecent(page, uid, queryWrapper); diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java index 23993efc0e..6af3bf242a 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java @@ -11,6 +11,7 @@ import io.dataease.exception.DEException; import io.dataease.license.config.XpackInteract; import io.dataease.utils.AuthUtils; import io.dataease.utils.CommonBeanFactory; +import io.dataease.utils.CommunityUtils; import io.dataease.utils.IDUtils; import io.dataease.visualization.dao.auto.entity.CoreStore; import io.dataease.visualization.dao.auto.mapper.CoreStoreMapper; @@ -65,7 +66,7 @@ public class VisualizationStoreManage { return coreStoreMapper.exists(queryWrapper); } - @XpackInteract(value = "perFilterManage", recursion = true) + @XpackInteract(value = "perFilterManage", recursion = true, invalid = true) public IPage query(int pageNum, int pageSize, VisualizationWorkbranchQueryRequest request) { IPage storePOIPage = proxy().queryStorePage(pageNum, pageSize, request); if (ObjectUtils.isEmpty(storePOIPage)) return null; @@ -89,7 +90,7 @@ public class VisualizationStoreManage { new VisualizationStoreVO( po.getStoreId(), po.getResourceId(), po.getName(), po.getType(), String.valueOf(po.getCreator()), ObjectUtils.isEmpty(po.getEditor()) ? null : String.valueOf(po.getEditor()), - po.getEditTime(), 9,po.getExtFlag())).toList(); + po.getEditTime(), 9, po.getExtFlag())).toList(); } public IPage queryStorePage(int goPage, int pageSize, VisualizationWorkbranchQueryRequest request) { @@ -106,6 +107,10 @@ public class VisualizationStoreManage { if (StringUtils.isNotBlank(request.getKeyword())) { queryWrapper.like("v.name", request.getKeyword()); } + String info = CommunityUtils.getInfo(); + if (StringUtils.isNotBlank(info)) { + queryWrapper.notExists(String.format(info, "s.resource_id")); + } queryWrapper.orderBy(true, request.isAsc(), "v.update_time"); Page page = new Page<>(goPage, pageSize); return coreStoreExtMapper.query(page, queryWrapper); diff --git a/de-xpack b/de-xpack index 282f497c1f..1a9dd92832 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 282f497c1f7c79e1db8c6b300d3f13ffe205a38d +Subproject commit 1a9dd92832707a6b07bd879aef3a0882e0db8ea7 diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java new file mode 100644 index 0000000000..f63adfb602 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java @@ -0,0 +1,28 @@ +package io.dataease.api.free; + +import io.dataease.api.free.dto.FreeBatchSyncRequest; +import io.dataease.api.free.dto.FreeQueryRequest; +import io.dataease.api.free.dto.FreeSyncRequest; +import io.dataease.api.free.vo.FreeVO; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +public interface FreeApi { + + @PostMapping("/query") + List query(@RequestBody FreeQueryRequest request); + + @PostMapping("/syncAll") + void syncAll(@RequestBody FreeSyncRequest request); + + @PostMapping("/deleteAll") + void deleteAll(); + + @PostMapping("/syncBatch") + void syncBatch(@RequestBody FreeBatchSyncRequest request); + + @PostMapping("/deleteBatch") + void deleteBatch(@RequestBody FreeBatchSyncRequest request); +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchDelRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchDelRequest.java new file mode 100644 index 0000000000..4c9bb1f219 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchDelRequest.java @@ -0,0 +1,17 @@ +package io.dataease.api.free.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +@Data +public class FreeBatchDelRequest implements Serializable { + @Serial + private static final long serialVersionUID = -296464652281011661L; + + private List idList; + + private int rtId; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchSyncRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchSyncRequest.java new file mode 100644 index 0000000000..be33ecd8c2 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeBatchSyncRequest.java @@ -0,0 +1,18 @@ +package io.dataease.api.free.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +public class FreeBatchSyncRequest extends FreeSyncRequest { + @Serial + private static final long serialVersionUID = 7068735824164921251L; + + private List idList; + + private int rtId; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeQueryRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeQueryRequest.java new file mode 100644 index 0000000000..0db5a011f6 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeQueryRequest.java @@ -0,0 +1,14 @@ +package io.dataease.api.free.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class FreeQueryRequest implements Serializable { + @Serial + private static final long serialVersionUID = 7951259501228286914L; + + private int rtId; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeSyncRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeSyncRequest.java new file mode 100644 index 0000000000..d9be72d1c8 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/dto/FreeSyncRequest.java @@ -0,0 +1,14 @@ +package io.dataease.api.free.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class FreeSyncRequest implements Serializable { + @Serial + private static final long serialVersionUID = 4845269683316801334L; + + private Long oid; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/vo/FreeVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/vo/FreeVO.java new file mode 100644 index 0000000000..1cd6045684 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/vo/FreeVO.java @@ -0,0 +1,30 @@ +package io.dataease.api.free.vo; + +import io.dataease.model.TreeResultModel; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +@Data +public class FreeVO implements Serializable, TreeResultModel { + @Serial + private static final long serialVersionUID = -7055936995493939929L; + + private Long id; + + private Long pid; + + private String name; + + private boolean leaf; + + private Long createTime; + + private int rtId; + + private int extraFlag; + + private List children; +} diff --git a/sdk/common/src/main/java/io/dataease/utils/CommunityUtils.java b/sdk/common/src/main/java/io/dataease/utils/CommunityUtils.java new file mode 100644 index 0000000000..4d4cf3f406 --- /dev/null +++ b/sdk/common/src/main/java/io/dataease/utils/CommunityUtils.java @@ -0,0 +1,16 @@ +package io.dataease.utils; + +public class CommunityUtils { + + + private static final ThreadLocal COMMUNITY_INFO = new ThreadLocal<>(); + + public static void setInfo(String info) { + COMMUNITY_INFO.set(info); + } + + public static String getInfo() { + return COMMUNITY_INFO.get(); + } + +}