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) {