From ac5703b44a31ccfe658c23a32fdf862c78a1ca93 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 23 Feb 2022 10:45:57 +0800 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8D=E5=B1=95=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/system/datasource/DsTree.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/views/system/datasource/DsTree.vue b/frontend/src/views/system/datasource/DsTree.vue index eb3af3ec23..c4685a9c8a 100644 --- a/frontend/src/views/system/datasource/DsTree.vue +++ b/frontend/src/views/system/datasource/DsTree.vue @@ -32,7 +32,6 @@ :default-expanded-keys="expandedArray" :data="tData" node-key="id" - default-expand-all :expand-on-click-node="true" :filter-node-method="filterNode" @node-click="nodeClick" From 340dd613a48af622d916f871d2385a8b0233a392 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 23 Feb 2022 15:02:01 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20API=20=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/datasource/JdbcProvider.java | 1 - .../service/dataset/ExtractDataService.java | 4 + .../service/datasource/DatasourceService.java | 38 +++++- frontend/src/lang/en.js | 2 +- frontend/src/views/dataset/add/AddDB.vue | 2 +- frontend/src/views/dataset/add/AddSQL.vue | 121 +++++++++-------- frontend/src/views/system/datasource/form.vue | 125 ++++++++++-------- 7 files changed, 170 insertions(+), 123 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index af864f0fa4..ea395af602 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -367,7 +367,6 @@ public class JdbcProvider extends DatasourceProvider { try (Connection con = getConnection(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryStr)) { return "Success"; } catch (Exception e) { - e.printStackTrace(); DataEaseException.throwException(e.getMessage()); } return "Error"; diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index a031064eba..6afd148af2 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -467,6 +467,10 @@ public class ExtractDataService { while ((line = input.readLine()) != null) { errMsg = errMsg + line + System.getProperty("line.separator"); } + input = new BufferedReader(new InputStreamReader(process.getInputStream())); + while ((line = input.readLine()) != null) { + errMsg = errMsg + line + System.getProperty("line.separator"); + } throw new Exception(errMsg); } }catch (Exception e){ diff --git a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java index f555be54c9..d684fefe15 100644 --- a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java +++ b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java @@ -161,7 +161,16 @@ public class DatasourceService { DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(datasource); - datasourceProvider.checkStatus(datasourceRequest); + String status = datasourceProvider.checkStatus(datasourceRequest); + if (status.equalsIgnoreCase("Success")) { + return ResultHolder.success("Success"); + } + if (status.equalsIgnoreCase("Warning")) { + return ResultHolder.error("Datasource has invalid items"); + } + if (status.equalsIgnoreCase("Error")) { + return ResultHolder.error("Datasource is invalid"); + } return ResultHolder.success("Success"); }catch (Exception e){ return ResultHolder.error("Datasource is invalid: " + e.getMessage()); @@ -178,8 +187,17 @@ public class DatasourceService { DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(datasource); - datasourceProvider.checkStatus(datasourceRequest); - datasource.setStatus("Success"); + String status = datasourceProvider.checkStatus(datasourceRequest); + datasource.setStatus(status); + if (status.equalsIgnoreCase("Success")) { + return ResultHolder.success("Success"); + } + if (status.equalsIgnoreCase("Warning")) { + return ResultHolder.error("Datasource has invalid items"); + } + if (status.equalsIgnoreCase("Error")) { + return ResultHolder.error("Datasource is invalid"); + } return ResultHolder.success("Success"); }catch (Exception e){ datasource.setStatus("Error"); @@ -206,7 +224,8 @@ public class DatasourceService { // 获取当前数据源下的db类型数据集 DatasetTableExample datasetTableExample = new DatasetTableExample(); - datasetTableExample.createCriteria().andTypeEqualTo("db").andDataSourceIdEqualTo(datasource.getId()); + + datasetTableExample.createCriteria().andTypeIn(Arrays.asList("db","api")).andDataSourceIdEqualTo(datasource.getId()); List datasetTables = datasetTableMapper.selectByExampleWithBLOBs(datasetTableExample); List list = new ArrayList<>(); for (TableDesc tableDesc : tables) { @@ -256,6 +275,7 @@ public class DatasourceService { DatasourceExample example = new DatasourceExample(); DatasourceExample.Criteria criteria = example.createCriteria(); criteria.andNameEqualTo(datasource.getName()); + criteria.andTypeEqualTo(datasource.getType()); if (StringUtils.isNotEmpty(datasource.getId())) { criteria.andIdNotEqualTo(datasource.getId()); } @@ -271,8 +291,16 @@ public class DatasourceService { public ApiDefinition checkApiDatasource(ApiDefinition apiDefinition) throws Exception { String response = ApiProvider.execHttpRequest(apiDefinition); + if(StringUtils.isEmpty(response)){ + throw new Exception("该请求返回数据为空"); + } + List datas = new ArrayList<>(); + try { + datas = JsonPath.read(response,apiDefinition.getDataPath()); + }catch (Exception e){ + throw new Exception("jsonPath 路径错误:" + e.getMessage()); + } - List datas = JsonPath.read(response,apiDefinition.getDataPath()); List dataList = new ArrayList<>(); List fields = new ArrayList<>(); Boolean getFileds = true; diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 5ff3e8f5c7..29cfc22d13 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1310,7 +1310,7 @@ export default { port_no_less_then_0: 'Port cannot be less than zero', priority: 'Advanced setting', extra_params: 'Extra JDBC connection string', - please_input_dataPath: '请输入 JsonPath 数据路径', + please_input_dataPath: 'Please enter the JsonPath data path', warning: 'Contains invalid datasets', data_table: 'Dataset Table', data_table_name: 'Dataset Table name', diff --git a/frontend/src/views/dataset/add/AddDB.vue b/frontend/src/views/dataset/add/AddDB.vue index 1a773e0d79..4502ff4f3e 100644 --- a/frontend/src/views/dataset/add/AddDB.vue +++ b/frontend/src/views/dataset/add/AddDB.vue @@ -125,7 +125,7 @@ export default { methods: { initDataSource() { listDatasource().then(response => { - this.options = response.data + this.options = response.data.filter(item => item.type !== 'api') }) }, kettleState() { diff --git a/frontend/src/views/dataset/add/AddSQL.vue b/frontend/src/views/dataset/add/AddSQL.vue index ab4c2ff27f..0757a854f4 100644 --- a/frontend/src/views/dataset/add/AddSQL.vue +++ b/frontend/src/views/dataset/add/AddSQL.vue @@ -3,7 +3,7 @@ - {{ param.tableId?$t('dataset.edit_sql'):$t('dataset.add_sql_table') }} + {{ param.tableId ? $t('dataset.edit_sql') : $t('dataset.add_sql_table') }} @@ -14,11 +14,12 @@ - + - + - + - - + + - - + + @@ -62,7 +64,9 @@
{{ $t('dataset.data_preview') }} - {{ $t('dataset.preview') }} + + {{ $t('dataset.preview') }} +
diff --git a/frontend/src/views/system/datasource/form.vue b/frontend/src/views/system/datasource/form.vue index 5b35723c97..dddc5971e9 100644 --- a/frontend/src/views/system/datasource/form.vue +++ b/frontend/src/views/system/datasource/form.vue @@ -96,7 +96,7 @@ - +