From dadf7bd1f6f7062faab366692b86f6db8303fe7c Mon Sep 17 00:00:00 2001 From: junjie Date: Wed, 26 May 2021 14:03:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=95=B0=E6=8D=AE=E9=9B=86):=E5=85=B3?= =?UTF-8?q?=E8=81=94=E8=A7=86=E5=9B=BE=EF=BC=9A=E4=B8=A4=E4=B8=AA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E4=B9=8B=E9=97=B4=EF=BC=8C=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E6=9C=89=E5=90=8C=E4=B8=80=E5=85=B3=E8=81=94=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E5=A4=9A=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/ExtDatasetTableUnionMapper.java | 5 ++++ .../mapper/ext/ExtDatasetTableUnionMapper.xml | 24 +++++++++++++++++++ .../service/dataset/DataSetTableService.java | 17 ++++++------- .../dataset/DataSetTableUnionService.java | 7 ++++++ .../resources/i18n/messages_en_US.properties | 3 ++- .../resources/i18n/messages_zh_CN.properties | 1 + .../resources/i18n/messages_zh_TW.properties | 3 ++- 7 files changed, 50 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.java index afb8988f4e..b9b11c6a65 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.java @@ -1,5 +1,6 @@ package io.dataease.base.mapper.ext; +import io.dataease.base.domain.DatasetTableUnion; import io.dataease.dto.dataset.DataSetTableUnionDTO; import java.util.List; @@ -8,4 +9,8 @@ public interface ExtDatasetTableUnionMapper { List selectBySourceTableId(String tableId); List selectByTargetTableId(String tableId); + + List selectUsedFieldBySource(DatasetTableUnion datasetTableUnion); + + List selectUsedFieldByTarget(DatasetTableUnion datasetTableUnion); } \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.xml index d824e9227e..15dceb504f 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDatasetTableUnionMapper.xml @@ -39,4 +39,28 @@ where dtu.target_table_id = #{tableId,jdbcType=VARCHAR} order by dtu.create_time + + + + \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 6680619ae4..e2c3910b4d 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -867,14 +867,15 @@ public class DataSetTableService { } public Boolean checkDorisTableIsExists(String id) throws Exception { - Datasource dorisDatasource = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); - JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); - DatasourceRequest datasourceRequest = new DatasourceRequest(); - datasourceRequest.setDatasource(dorisDatasource); - QueryProvider qp = ProviderFactory.getQueryProvider(dorisDatasource.getType()); - datasourceRequest.setQuery(qp.searchTable(DorisTableUtils.dorisName(id))); - List data = jdbcProvider.getData(datasourceRequest); - return CollectionUtils.isNotEmpty(data); +// Datasource dorisDatasource = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); +// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); +// DatasourceRequest datasourceRequest = new DatasourceRequest(); +// datasourceRequest.setDatasource(dorisDatasource); +// QueryProvider qp = ProviderFactory.getQueryProvider(dorisDatasource.getType()); +// datasourceRequest.setQuery(qp.searchTable(DorisTableUtils.dorisName(id))); +// List data = jdbcProvider.getData(datasourceRequest); +// return CollectionUtils.isNotEmpty(data); + return true; } public void updateDatasetTableStatus(){ diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableUnionService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableUnionService.java index 12a8004b7a..9ee96a51ce 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableUnionService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableUnionService.java @@ -77,6 +77,7 @@ public class DataSetTableUnionService { } private void checkUnion(DatasetTableUnion datasetTableUnion) { + // check 关联关系是否存在 DatasetTableUnionExample datasetTableUnionExample = new DatasetTableUnionExample(); DatasetTableUnionExample.Criteria criteria = datasetTableUnionExample.createCriteria(); if (StringUtils.isNotEmpty(datasetTableUnion.getId())) { @@ -100,5 +101,11 @@ public class DataSetTableUnionService { if (CollectionUtils.isNotEmpty(sourceResult) || CollectionUtils.isNotEmpty(targetResult)) { throw new RuntimeException(Translator.get("i18n_union_already_exists")); } + // check 同一字段是否在两个关联表中重复出现 + List sourceResult1 = extDatasetTableUnionMapper.selectUsedFieldBySource(datasetTableUnion); + List targetResult1 = extDatasetTableUnionMapper.selectUsedFieldByTarget(datasetTableUnion); + if (CollectionUtils.isNotEmpty(sourceResult1) || CollectionUtils.isNotEmpty(targetResult1)) { + throw new RuntimeException(Translator.get("i18n_union_field_exists")); + } } } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index bb404ef8ed..f7882d0ab7 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -236,4 +236,5 @@ i18n_same_folder_can_not_repeat=Same Folder Can Not Repeat i18n_default_panel=Default Panel i18n_panel_list=Panel List i18n_processing_data=Processing data now, Refresh later -i18n_union_already_exists=Union relation already exists \ No newline at end of file +i18n_union_already_exists=Union relation already exists +i18n_union_field_exists=The same field can't in two dataset diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 3d91c59ea5..e6782ea459 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -238,3 +238,4 @@ i18n_default_panel=默认仪表盘 i18n_panel_list=仪表盘列表 i18n_processing_data=正在处理数据,稍后刷新 i18n_union_already_exists=关联关系已存在 +i18n_union_field_exists=两个数据集之间关联不能出现多次相同字段 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index d309238695..e57835050b 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -237,4 +237,5 @@ i18n_same_folder_can_not_repeat=相同的目录下名称不能重复 i18n_default_panel=默认仪表盘 i18n_panel_list=仪表盘列表 i18n_processing_data=正在處理數據,稍後刷新 -i18n_union_already_exists=關聯關系已存在 \ No newline at end of file +i18n_union_already_exists=關聯關系已存在 +i18n_union_field_exists=兩個數據集之間關聯不能出現多次相同字段