Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
wangjiahao 2021-05-21 13:51:14 +08:00
commit fd37b3e331
2 changed files with 21 additions and 10 deletions

View File

@ -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 {

View File

@ -12,6 +12,7 @@ const dialogPanel = {
attrs: {
multiple: false,
placeholder: '请选择',
viewIds: [],
datas: [],
key: 'id',
label: 'text',