From 5d22d1e720a10a5718dc983c45909344acbc60cc Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 1 Feb 2023 17:09:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9API=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E5=90=8D=E7=A7=B0=E6=97=B6=EF=BC=8C=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E9=9B=86=E9=87=8C?= =?UTF-8?q?=E7=9A=84=E8=A1=A8=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/datasource/ApiDefinition.java | 2 ++ .../service/datasource/DatasourceService.java | 23 ++++++++++++++++++- .../system/datasource/DsConfiguration.vue | 15 ++++++------ 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java index b3689548c6..540081cefa 100644 --- a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java +++ b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java @@ -26,5 +26,7 @@ public class ApiDefinition { private boolean useJsonPath; private String jsonPath; private boolean showApiStructure; + private boolean reName = false; + private String orgName; } 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 7a72822ecc..76d2f12ef4 100644 --- a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java +++ b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java @@ -284,7 +284,6 @@ public class DatasourceService { datasource.setUpdateTime(System.currentTimeMillis()); Provider datasourceProvider = ProviderFactory.getProvider(updataDsRequest.getType()); datasourceProvider.checkConfiguration(datasource); - checkAndUpdateDatasourceStatus(datasource); updateDatasource(updataDsRequest.getId(), datasource); } @@ -295,6 +294,28 @@ public class DatasourceService { checkAndUpdateDatasourceStatus(datasource); datasourceMapper.updateByExampleSelective(datasource, example); handleConnectionPool(id); + + if (datasource.getType().equalsIgnoreCase("api")) { + DatasetTableExample datasetTableExample = new DatasetTableExample(); + datasetTableExample.createCriteria().andDataSourceIdEqualTo(id); + List datasetTables = datasetTableMapper.selectByExample(datasetTableExample); + List apiDefinitionList = new Gson().fromJson(datasource.getConfiguration(), new TypeToken>() {}.getType()); + apiDefinitionList.forEach(apiDefinition -> { + if(apiDefinition.isReName()){ + datasetTables.forEach(datasetTable -> { + if(new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class).getTable().equals(apiDefinition.getOrgName())){ + DatasetTable record = new DatasetTable(); + DataTableInfoDTO dataTableInfoDTO = new DataTableInfoDTO(); + dataTableInfoDTO.setTable(apiDefinition.getName()); + record.setInfo(new Gson().toJson(dataTableInfoDTO)); + datasetTableExample.clear(); + datasetTableExample.createCriteria().andIdEqualTo(datasetTable.getId()); + datasetTableMapper.updateByExampleSelective(record, datasetTableExample); + } + }); + } + }); + } } private void handleConnectionPool(String datasourceId) { diff --git a/frontend/src/views/system/datasource/DsConfiguration.vue b/frontend/src/views/system/datasource/DsConfiguration.vue index c4362e3e78..d8326e79c5 100644 --- a/frontend/src/views/system/datasource/DsConfiguration.vue +++ b/frontend/src/views/system/datasource/DsConfiguration.vue @@ -1223,14 +1223,15 @@ export default { this.edit_api_item = false if (!this.add_api_item) { for (let i = 0; i < this.form.apiConfiguration.length; i++) { - if ( - this.form.apiConfiguration[i].serialNumber === - this.apiItem.serialNumber - ) { - this.form.apiConfiguration[i] = JSON.parse( - JSON.stringify(this.apiItem) - ) + if (this.form.apiConfiguration[i].serialNumber === this.apiItem.serialNumber) { this.certinKey = !this.certinKey + if(this.form.apiConfiguration[i].name !== this.apiItem.name){ + this.apiItem.reName = true + this.apiItem.orgName = this.form.apiConfiguration[i].name + }else { + this.apiItem.reName = false + } + this.form.apiConfiguration[i] = JSON.parse(JSON.stringify(this.apiItem)) } } } else {