From efe1830d884bc85373c876a4b412462d9ce0c4b6 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 21 May 2021 12:44:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=B8=8B=E6=8B=89=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E7=BB=84=E4=BB=B6=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/widget/serviceImpl/TextSelectServiceImpl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/components/widget/serviceImpl/TextSelectServiceImpl.js b/frontend/src/components/widget/serviceImpl/TextSelectServiceImpl.js index 803a68757f..48f8f81b53 100644 --- a/frontend/src/components/widget/serviceImpl/TextSelectServiceImpl.js +++ b/frontend/src/components/widget/serviceImpl/TextSelectServiceImpl.js @@ -12,6 +12,7 @@ const dialogPanel = { attrs: { multiple: false, placeholder: '请选择', + viewIds: [], datas: [], key: 'id', label: 'text', From 0129af6652e3a6fd844fa6f95913adfac853cd07 Mon Sep 17 00:00:00 2001 From: junjie Date: Fri, 21 May 2021 13:47:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(backend):=E4=BB=AA=E8=A1=A8=E7=9B=98?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E7=BB=84=E4=BB=B6=20field=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/direct/DirectFieldService.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java index bb2d6ea60e..f077c22c8f 100644 --- a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java +++ b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java @@ -1,5 +1,6 @@ package io.dataease.service.dataset.impl.direct; +import com.google.gson.Gson; import io.dataease.base.domain.DatasetTable; import io.dataease.base.domain.DatasetTableField; import io.dataease.base.domain.Datasource; @@ -8,6 +9,7 @@ import io.dataease.datasource.provider.DatasourceProvider; import io.dataease.datasource.provider.ProviderFactory; import io.dataease.datasource.request.DatasourceRequest; import io.dataease.datasource.service.DatasourceService; +import io.dataease.dto.dataset.DataTableInfoDTO; import io.dataease.provider.QueryProvider; import io.dataease.service.dataset.DataSetFieldService; import io.dataease.service.dataset.DataSetTableFieldsService; @@ -55,23 +57,31 @@ public class DirectFieldService implements DataSetFieldService { String tableName = datasetTable.getName(); DatasourceRequest datasourceRequest = new DatasourceRequest(); - DatasourceProvider datasourceProvider; - if (datasetTable.getMode() == 0) { - String dataSourceId = datasetTable.getDataSourceId(); - if (StringUtils.isEmpty(dataSourceId)) return null; - Datasource ds = datasourceService.get(dataSourceId); + DatasourceProvider datasourceProvider = null; + if (datasetTable.getMode() == 0) {// 直连 + if (StringUtils.isEmpty(datasetTable.getDataSourceId())) return null; + Datasource ds = datasourceService.get(datasetTable.getDataSourceId()); datasourceProvider = ProviderFactory.getProvider(ds.getType()); + datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); + DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); - String querySQL = qp.createQuerySQL(tableName, Collections.singletonList(field)); - datasourceRequest.setQuery(querySQL); - } else { + if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "db")) { + datasourceRequest.setTable(dataTableInfoDTO.getTable()); + datasourceRequest.setQuery(qp.createQuerySQL(dataTableInfoDTO.getTable(), Collections.singletonList(field))); + } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) { + datasourceRequest.setQuery(qp.createQuerySQLAsTmp(dataTableInfoDTO.getSql(), Collections.singletonList(field))); + } + } else if (datasetTable.getMode() == 1) {// 抽取 + // 连接doris,构建doris数据源查询 Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); datasourceProvider = ProviderFactory.getProvider(ds.getType()); + datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); + tableName = "ds_" + datasetTable.getId().replaceAll("-", "_"); + datasourceRequest.setTable(tableName); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); - String querySQL = qp.createQuerySQL(tableName, Collections.singletonList(field)); - datasourceRequest.setQuery(querySQL); + datasourceRequest.setQuery(qp.createQuerySQL(tableName, Collections.singletonList(field))); } try {