From 56f72d53a4b277853942a68052ca392c7c9732b3 Mon Sep 17 00:00:00 2001 From: ulleo Date: Tue, 2 Apr 2024 16:19:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(X-Pack):=20=E4=BF=AE=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=A1=AB=E6=8A=A5=E5=BB=BA=E8=A1=A8=E6=97=B6=E5=8C=85?= =?UTF-8?q?=E5=90=AB=E5=A4=A7=E5=86=99=E5=AD=97=E6=AF=8D=E6=97=B6=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E4=BC=9A=E5=AF=BC=E8=87=B4=E6=8F=92=E5=85=A5/?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E6=8A=A5=E9=94=99=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/datafill/DataFillDataService.java | 38 +++++++++++-------- .../service/datafill/DataFillService.java | 10 ++++- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java index 48c018ac65..1cb8ece1df 100644 --- a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java +++ b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java @@ -60,6 +60,21 @@ public class DataFillDataService { private final static Gson gson = new Gson(); + public static void setLowerCaseRequest(Datasource ds, Provider datasourceProvider, ExtDDLProvider extDDLProvider, DatasourceRequest datasourceRequest) throws Exception { + DatasourceTypes datasourceType = DatasourceTypes.valueOf(ds.getType()); + switch (datasourceType) { + case mysql: + case mariadb: + String checkLowerCaseSql = extDDLProvider.getLowerCaseTaleNames(); + datasourceRequest.setQuery(checkLowerCaseSql); + List checkLowerCaseData = datasourceProvider.getData(datasourceRequest); + long lowCase = NumberUtils.toLong(checkLowerCaseData.get(0)[1]); + datasourceRequest.setLowerCaseTaleNames(lowCase > 0); + break; + default: + datasourceRequest.setLowerCaseTaleNames(true); + } + } public DataFillFormTableDataResponse listData(DataFillFormTableDataRequest searchRequest) throws Exception { @@ -80,19 +95,7 @@ public class DataFillDataService { ExtDDLProvider extDDLProvider = ProviderFactory.gerExtDDLProvider(ds.getType()); - DatasourceTypes datasourceType = DatasourceTypes.valueOf(ds.getType()); - switch (datasourceType) { - case mysql: - case mariadb: - String checkLowerCaseSql = extDDLProvider.getLowerCaseTaleNames(); - datasourceRequest.setQuery(checkLowerCaseSql); - List checkLowerCaseData = datasourceProvider.getData(datasourceRequest); - long lowCase = NumberUtils.toLong(checkLowerCaseData.get(0)[1]); - datasourceRequest.setLowerCaseTaleNames(lowCase > 0); - break; - default: - datasourceRequest.setLowerCaseTaleNames(true); - } + setLowerCaseRequest(ds, datasourceProvider, extDDLProvider, datasourceRequest); List tableFields = datasourceProvider.getTableFields(datasourceRequest); Map extTableFieldTypeMap = new HashMap<>(); @@ -249,6 +252,9 @@ public class DataFillDataService { DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); datasourceRequest.setTable(dataFillForm.getTableName()); + + setLowerCaseRequest(ds, datasourceProvider, extDDLProvider, datasourceRequest); + List tableFields = datasourceProvider.getTableFields(datasourceRequest).stream().filter(TableField::isPrimaryKey).collect(Collectors.toList()); if (CollectionUtils.isEmpty(tableFields)) { throw new RuntimeException("没有主键"); @@ -291,10 +297,14 @@ public class DataFillDataService { Datasource ds = datasource.get(dataFillForm.getDatasource()); Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); + ExtDDLProvider extDDLProvider = ProviderFactory.gerExtDDLProvider(ds.getType()); DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); datasourceRequest.setTable(dataFillForm.getTableName()); + + setLowerCaseRequest(ds, datasourceProvider, extDDLProvider, datasourceRequest); + List tableFields = datasourceProvider.getTableFields(datasourceRequest); Map tableFieldMap = new HashMap<>(); @@ -366,8 +376,6 @@ public class DataFillDataService { } } - ExtDDLProvider extDDLProvider = ProviderFactory.gerExtDDLProvider(ds.getType()); - if (CollectionUtils.isNotEmpty(uniqueFields)) { for (DatasourceRequest.TableFieldWithValue uniqueField : uniqueFields) { diff --git a/core/backend/src/main/java/io/dataease/service/datafill/DataFillService.java b/core/backend/src/main/java/io/dataease/service/datafill/DataFillService.java index b25fffcb93..125f4ed6b5 100644 --- a/core/backend/src/main/java/io/dataease/service/datafill/DataFillService.java +++ b/core/backend/src/main/java/io/dataease/service/datafill/DataFillService.java @@ -4,7 +4,10 @@ import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import io.dataease.auth.annotation.DeCleaner; import io.dataease.auth.service.AuthUserService; -import io.dataease.commons.constants.*; +import io.dataease.commons.constants.DataFillConstants; +import io.dataease.commons.constants.DePermissionType; +import io.dataease.commons.constants.SysAuthConstants; +import io.dataease.commons.constants.SysLogConstants; import io.dataease.commons.utils.*; import io.dataease.controller.ResultHolder; import io.dataease.controller.request.datafill.DataFillFormRequest; @@ -12,7 +15,6 @@ import io.dataease.dto.DatasourceDTO; import io.dataease.dto.datafill.DataFillFormDTO; import io.dataease.ext.ExtDataFillFormMapper; import io.dataease.i18n.Translator; -import io.dataease.listener.util.CacheUtils; import io.dataease.plugins.common.base.domain.*; import io.dataease.plugins.common.base.mapper.DataFillFormMapper; import io.dataease.plugins.common.base.mapper.DataFillUserTaskMapper; @@ -317,10 +319,14 @@ public class DataFillService { Datasource ds = datasource.get(dataFillForm.getDatasource()); Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); + ExtDDLProvider extDDLProvider = ProviderFactory.gerExtDDLProvider(ds.getType()); DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); datasourceRequest.setTable(dataFillForm.getTableName()); + + DataFillDataService.setLowerCaseRequest(ds, datasourceProvider, extDDLProvider, datasourceRequest); + List tableFields = datasourceProvider.getTableFields(datasourceRequest); for (TableField tableField : tableFields) {