From 0fba0664be4d55278487f42dd5fd80b77e9a9e44 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 25 Feb 2025 18:32:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DAPILark=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/provider/ApiUtils.java | 24 ++++--------------- .../datasource/server/DatasourceServer.java | 2 +- .../data/datasource/form/EditorDetail.vue | 1 + 3 files changed, 7 insertions(+), 20 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java index aaeb4f4ecf..7aef5dad6d 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java @@ -140,7 +140,7 @@ public class ApiUtils { List tableFields = new ArrayList<>(); try { - List lists = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); + List lists = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); for (ApiDefinition apiDefinition : lists) { if (datasourceRequest.getTable().equalsIgnoreCase(apiDefinition.getDeTableName())) { tableFields = getTableFields(apiDefinition); @@ -465,14 +465,9 @@ public class ApiUtils { public static ApiDefinition checkApiDefinition(DatasourceRequest datasourceRequest) throws DEException { ApiDefinition apiDefinition = new ApiDefinition(); - List apiDefinitionList = new ArrayList<>(); TypeReference> listTypeReference = new TypeReference>() { }; - try { - apiDefinitionList = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); - } catch (Exception e) { - DEException.throwException(e); - } + List apiDefinitionList = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); if (!CollectionUtils.isEmpty(apiDefinitionList)) { for (ApiDefinition definition : apiDefinitionList) { if (definition != null && (definition.getType() == null || !definition.getType().equalsIgnoreCase("params"))) { @@ -814,12 +809,7 @@ public class ApiUtils { private static List params(DatasourceRequest datasourceRequest) { TypeReference> listTypeReference = new TypeReference>() { }; - List apiDefinitionListTemp = null; - try { - apiDefinitionListTemp = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); - } catch (Exception e) { - DEException.throwException(e); - } + List apiDefinitionListTemp = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); return apiDefinitionListTemp.stream().filter(apiDefinition -> apiDefinition != null && apiDefinition.getType() != null && apiDefinition.getType().equalsIgnoreCase("params")).collect(Collectors.toList()); } @@ -827,12 +817,8 @@ public class ApiUtils { List apiDefinitionList = new ArrayList<>(); TypeReference> listTypeReference = new TypeReference>() { }; - List apiDefinitionListTemp = null; - try { - apiDefinitionListTemp = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); - } catch (Exception e) { - DEException.throwException(e); - } + List apiDefinitionListTemp = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); + if (!CollectionUtils.isEmpty(apiDefinitionListTemp)) { for (ApiDefinition apiDefinition : apiDefinitionListTemp) { if (apiDefinition == null || apiDefinition.getType() == null || apiDefinition.getType().equalsIgnoreCase("params")) { diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 6d415e8eaf..72b254fa36 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -401,7 +401,7 @@ public class DatasourceServer implements DatasourceApi { for (String toCreateTable : toCreateTables) { datasourceRequest.setTable(toCreateTable); try { - datasourceSyncManage.createEngineTable(toCreateTable, (List) invokeMethod(sourceTableRequest.getDatasource().getType(), "getTableFields", DatasourceRequest.class, sourceTableRequest)); + datasourceSyncManage.createEngineTable(toCreateTable, (List) invokeMethod(sourceTableRequest.getDatasource().getType(), "getTableFields", DatasourceRequest.class, datasourceRequest)); } catch (Exception e) { DEException.throwException("Failed to create table " + toCreateTable + ", " + e.getMessage()); } diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue b/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue index e0ca1e8894..8eb4fec04d 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue @@ -871,6 +871,7 @@ defineExpose({