From e83510f4b76babd70da5f0a94c9b99a7aea8d4e1 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 24 Aug 2021 15:03:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E6=BA=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DatasourceController.java | 4 ++-- .../datasource/service/DatasourceService.java | 21 +++++++++++++------ .../service/dataset/ExtractDataService.java | 4 +++- frontend/src/views/system/datasource/form.vue | 4 ++-- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/backend/src/main/java/io/dataease/datasource/controller/DatasourceController.java b/backend/src/main/java/io/dataease/datasource/controller/DatasourceController.java index 9a1c734a7e..6836c86526 100644 --- a/backend/src/main/java/io/dataease/datasource/controller/DatasourceController.java +++ b/backend/src/main/java/io/dataease/datasource/controller/DatasourceController.java @@ -38,8 +38,8 @@ public class DatasourceController { @ApiOperation("验证数据源") @PostMapping("/validate") - public void validate(@RequestBody Datasource datasource) throws Exception { - datasourceService.validate(datasource); + public ResultHolder validate(@RequestBody Datasource datasource) throws Exception { + return datasourceService.validate(datasource); } @ApiOperation("验证数据源") diff --git a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java index 5802ef3d8b..aabe5cc7f5 100644 --- a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java +++ b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java @@ -120,11 +120,17 @@ public class DatasourceService { checkAndUpdateDatasourceStatus(datasource); } - public void validate(Datasource datasource) throws Exception { - DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); - DatasourceRequest datasourceRequest = new DatasourceRequest(); - datasourceRequest.setDatasource(datasource); - datasourceProvider.checkStatus(datasourceRequest); + public ResultHolder validate(Datasource datasource) throws Exception { + try { + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(datasource); + datasourceProvider.checkStatus(datasourceRequest); + return ResultHolder.success("Success"); + }catch (Exception e){ + return ResultHolder.error("Datasource is invalid: " + e.getMessage()); + } + } public ResultHolder validate(String datasourceId) { @@ -133,7 +139,10 @@ public class DatasourceService { return ResultHolder.error("Can not find datasource: "+ datasourceId); } try { - validate(datasource); + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(datasource); + datasourceProvider.checkStatus(datasourceRequest); datasource.setStatus("Success"); return ResultHolder.success("Success"); }catch (Exception e){ 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 5df363f22e..04488064cf 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -572,7 +572,9 @@ public class ExtractDataService { } private void extractData(DatasetTable datasetTable, String extractType) throws Exception { - datasourceService.validate(datasetTable.getDataSourceId()); + if(StringUtils.isNotEmpty(datasetTable.getDataSourceId())){ + datasourceService.validate(datasetTable.getDataSourceId()); + } KettleFileRepository repository = CommonBeanFactory.getBean(KettleFileRepository.class); RepositoryDirectoryInterface repositoryDirectoryInterface = repository.loadRepositoryDirectoryTree(); TransMeta transMeta = null; diff --git a/frontend/src/views/system/datasource/form.vue b/frontend/src/views/system/datasource/form.vue index 591b3bb2ca..36b96dbd17 100644 --- a/frontend/src/views/system/datasource/form.vue +++ b/frontend/src/views/system/datasource/form.vue @@ -278,7 +278,7 @@ export default { data.configuration = JSON.stringify(data.configuration) if(data.showModel === 'show' && !this.canEdit){ validateDsById(data.id).then(res => { - if(res.success === 'true'){ + if(res.success){ this.$success(this.$t('datasource.validate_success')) }else { this.$error(this.$t(res.message)) @@ -290,7 +290,7 @@ export default { }else { validateDs(data).then(res => { - if(res.success === 'true'){ + if(res.success){ this.$success(this.$t('datasource.validate_success')) }else { this.$error(this.$t(res.message))