From 37936e7b379fac80845263173c25c3b93a1c6ae4 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 13 Jul 2022 12:31:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90):=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0sql=E6=8B=BC=E6=8E=A5=E5=89=8D=E7=BC=80=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/provider/ProviderFactory.java | 4 ++++ .../service/dataset/DataSetTableService.java | 15 +++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/ProviderFactory.java b/backend/src/main/java/io/dataease/provider/ProviderFactory.java index 8bc2cbd64f..f40d9109bf 100644 --- a/backend/src/main/java/io/dataease/provider/ProviderFactory.java +++ b/backend/src/main/java/io/dataease/provider/ProviderFactory.java @@ -29,6 +29,10 @@ public class ProviderFactory implements ApplicationContextAware { dataSourceType.setCharset(d.getCharset()); dataSourceType.setTargetCharset(d.getTargetCharset()); } + dataSourceType.setKeywordSuffix(d.getKeywordSuffix()); + dataSourceType.setKeywordPrefix(d.getKeywordPrefix()); + dataSourceType.setAliasSuffix(d.getAliasSuffix()); + dataSourceType.setAliasPrefix(d.getAliasPrefix()); beanFactory.registerSingleton(d.getType(), dataSourceType); } } 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 be22c2a64f..27268cf796 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -32,6 +32,7 @@ import io.dataease.plugins.common.base.mapper.*; import io.dataease.plugins.common.constants.DatasetType; import io.dataease.plugins.common.constants.DatasourceTypes; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; +import io.dataease.plugins.common.dto.datasource.DataSourceType; import io.dataease.plugins.common.dto.datasource.TableField; import io.dataease.plugins.common.request.datasource.DatasourceRequest; import io.dataease.plugins.datasource.provider.Provider; @@ -40,6 +41,7 @@ import io.dataease.plugins.loader.ClassloaderResponsity; import io.dataease.provider.ProviderFactory; import io.dataease.provider.datasource.JdbcProvider; import io.dataease.provider.DDLProvider; +import io.dataease.service.datasource.DatasourceService; import io.dataease.service.engine.EngineService; import io.dataease.service.sys.SysAuthService; import net.sf.jsqlparser.expression.BinaryExpression; @@ -134,6 +136,8 @@ public class DataSetTableService { private ChartViewMapper chartViewMapper; @Resource private DataSetTableTaskLogService dataSetTableTaskLogService; + @Resource + private DatasourceService datasourceService; private static boolean isUpdatingDatasetTableStatus = false; private static final String lastUpdateTime = "${__last_update_time__}"; @@ -1259,10 +1263,9 @@ public class DataSetTableService { } } - public String getCustomSQLDatasource(DataTableInfoDTO dataTableInfoDTO, List list, - Datasource ds) { - DatasourceTypes datasourceTypes = DatasourceTypes.valueOf(ds.getType()); - String keyword = datasourceTypes.getKeywordPrefix() + "%s" + datasourceTypes.getKeywordSuffix(); + public String getCustomSQLDatasource(DataTableInfoDTO dataTableInfoDTO, List list, Datasource ds) { + DataSourceType dataSourceType = datasourceService.types().stream().filter(obj -> Objects.equals(obj.getType(), ds.getType())).collect(Collectors.toList()).get(0); + String keyword = dataSourceType.getKeywordPrefix() + "%s" + dataSourceType.getKeywordSuffix(); Map customInfo = new TreeMap<>(); for (DataTableInfoCustomUnion ele : dataTableInfoDTO.getList()) { DatasetTable datasetTable = datasetTableMapper.selectByPrimaryKey(ele.getTableId()); @@ -1483,8 +1486,8 @@ public class DataSetTableService { // 关联数据集 直连模式 public Map getUnionSQLDatasource(DataTableInfoDTO dataTableInfoDTO, Datasource ds) { - DatasourceTypes datasourceTypes = DatasourceTypes.valueOf(ds.getType()); - String keyword = datasourceTypes.getKeywordPrefix() + "%s" + datasourceTypes.getKeywordSuffix(); + DataSourceType dataSourceType = datasourceService.types().stream().filter(obj -> Objects.equals(obj.getType(), ds.getType())).collect(Collectors.toList()).get(0); + String keyword = dataSourceType.getKeywordPrefix() + "%s" + dataSourceType.getKeywordSuffix(); String configuration = ds.getConfiguration(); JsonObject jsonObject = JsonParser.parseString(configuration).getAsJsonObject();