From daec6f519a022a6df9169fffe90cc76e00dcc07c Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 16 Apr 2025 16:27:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E5=85=BC=E5=AE=B9=E8=B7=A8=E6=BA=90=E6=A0=87=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/dataset/manage/DatasetSQLManage.java | 10 +++++++--- .../server/DataVisualizationServer.java | 12 ++++++++++++ .../dataease/api/dataset/vo/CoreDatasetGroupVO.java | 5 +++++ .../api/visualization/vo/AppCoreDatasetGroupVO.java | 5 +++++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java index bab5179f90..7baca9a16c 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java @@ -557,12 +557,16 @@ public class DatasetSQLManage { public void datasetCrossDefault() { List allList = datasetGroupManage.getAllList(); for (DatasetGroupInfoDTO ele : allList) { - Set allDs = getAllDs(ele.getUnion()); - boolean isCross = allDs.size() > 1; - ele.setIsCross(isCross); + mergeDatasetCrossDefault(ele); CoreDatasetGroup record = new CoreDatasetGroup(); BeanUtils.copyBean(record, ele); coreDatasetGroupMapper.updateById(record); } } + + public void mergeDatasetCrossDefault(DatasetGroupInfoDTO ele) { + Set allDs = getAllDs(ele.getUnion()); + boolean isCross = allDs.size() > 1; + ele.setIsCross(isCross); + } } diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index c795eb9c6c..8e76d60336 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -2,7 +2,9 @@ package io.dataease.visualization.server; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.fasterxml.jackson.core.type.TypeReference; import io.dataease.api.dataset.union.DatasetGroupInfoDTO; +import io.dataease.api.dataset.union.UnionDTO; import io.dataease.api.template.dto.TemplateManageFileDTO; import io.dataease.api.template.dto.VisualizationTemplateExtendDataDTO; import io.dataease.api.visualization.DataVisualizationApi; @@ -29,6 +31,7 @@ import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper; import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableMapper; import io.dataease.dataset.manage.DatasetDataManage; import io.dataease.dataset.manage.DatasetGroupManage; +import io.dataease.dataset.manage.DatasetSQLManage; import io.dataease.dataset.utils.DatasetUtils; import io.dataease.datasource.dao.auto.entity.CoreDatasource; import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper; @@ -155,6 +158,8 @@ public class DataVisualizationServer implements DataVisualizationApi { private SnapshotDataVisualizationInfoMapper snapshotMapper; @Resource private ExtChartViewMapper extChartViewMapper; + @Resource + private DatasetSQLManage datasetSQLManage; @Override public DataVisualizationVO findCopyResource(Long dvId, String busiFlag) { @@ -381,6 +386,13 @@ public class DataVisualizationServer implements DataVisualizationApi { dsGroup.setName(dsGroup.getName() + "-" + UUID.randomUUID().toString()); } dsGroupNameSave.add(dsGroup.getName()); + if(dsGroup.getIsCross() == null){ + if(dsGroup.getUnion() == null){ + dsGroup.setUnion(JsonUtil.parseList(dsGroup.getInfo(), new TypeReference<>() { + })); + } + datasetSQLManage.mergeDatasetCrossDefault(dsGroup); + } datasetGroupManage.innerSave(dsGroup); }); diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetGroupVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetGroupVO.java index f45f24f295..9501cea9c9 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetGroupVO.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetGroupVO.java @@ -88,6 +88,11 @@ public class CoreDatasetGroupVO implements Serializable { */ private String unionSql; + /** + * 是否跨源 + */ + private Boolean isCross; + private List datasetFields = new ArrayList<>(); private List datasetViews = new ArrayList<>(); diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/AppCoreDatasetGroupVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/AppCoreDatasetGroupVO.java index 96412f8931..073dc2d4f6 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/AppCoreDatasetGroupVO.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/AppCoreDatasetGroupVO.java @@ -84,4 +84,9 @@ public class AppCoreDatasetGroupVO implements Serializable { * 关联sql */ private String unionSql; + + /** + * 是否跨源 + */ + private Boolean isCross; }