diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index cc25483fc7..1deadd9115 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -1,10 +1,7 @@ package io.dataease.dataset.manage; import io.dataease.api.chart.dto.DeSortField; -import io.dataease.api.dataset.dto.BaseTreeNodeDTO; -import io.dataease.api.dataset.dto.EnumValueRequest; -import io.dataease.api.dataset.dto.PreviewSqlDTO; -import io.dataease.api.dataset.dto.SqlLogDTO; +import io.dataease.api.dataset.dto.*; import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.api.dataset.union.DatasetTableInfoDTO; import io.dataease.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO; @@ -435,10 +432,10 @@ public class DatasetDataManage { } } - public List getFieldEnum(List ids) throws Exception { + public List getFieldEnum(MultFieldValuesRequest multFieldValuesRequest) throws Exception { // 根据前端传的查询组件field ids,获取所有字段枚举值并去重合并 List> list = new ArrayList<>(); - for (Long id : ids) { + for (Long id : multFieldValuesRequest.getFieldIds()) { DatasetTableFieldDTO field = datasetTableFieldManage.selectById(id); if (field == null) { DEException.throwException(Translator.get("i18n_no_field")); @@ -497,7 +494,12 @@ public class DatasetDataManage { Field2SQLObj.field2sqlObj(sqlMeta, fields, allFields, crossDs, dsMap); WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap); Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), allFields, crossDs, dsMap); - String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, true, 0, 1000); + String querySQL; + if (multFieldValuesRequest.getResultMode() == 0) { + querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, true, 0, 1000); + } else { + querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, true); + } querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); logger.info("calcite data enum sql: " + querySQL); @@ -730,7 +732,12 @@ public class DatasetDataManage { ExtWhere2Str.extWhere2sqlOjb(sqlMeta, extFilterList, allFields, crossDs, dsMap); WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap); Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), allFields, crossDs, dsMap); - String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1, 0, 1000); + String querySQL; + if (request.getResultMode() == 0) { + querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1, 0, 1000); + } else { + querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1); + } querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); logger.info("calcite data enum sql: " + querySQL); @@ -785,7 +792,8 @@ public class DatasetDataManage { return previewData; } - public List getFieldValueTree(List ids) throws Exception { + public List getFieldValueTree(MultFieldValuesRequest multFieldValuesRequest) throws Exception { + List ids = multFieldValuesRequest.getFieldIds(); if (ids.isEmpty()) { DEException.throwException("no field selected."); } @@ -855,7 +863,12 @@ public class DatasetDataManage { Field2SQLObj.field2sqlObj(sqlMeta, fields, allFields, crossDs, dsMap); WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap); Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), allFields, crossDs, dsMap); - String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, false, 0, 1000); + String querySQL; + if (multFieldValuesRequest.getResultMode() == 0) { + querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, false, 0, 1000); + } else { + querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, false); + } querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); logger.info("filter tree sql: " + querySQL); diff --git a/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetDataServer.java b/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetDataServer.java index 3f28f8a20a..f24e6b6a6d 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetDataServer.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetDataServer.java @@ -3,6 +3,7 @@ package io.dataease.dataset.server; import io.dataease.api.dataset.DatasetDataApi; import io.dataease.api.dataset.dto.BaseTreeNodeDTO; import io.dataease.api.dataset.dto.EnumValueRequest; +import io.dataease.api.dataset.dto.MultFieldValuesRequest; import io.dataease.api.dataset.dto.PreviewSqlDTO; import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.dataset.manage.DatasetDataManage; @@ -46,9 +47,9 @@ public class DatasetDataServer implements DatasetDataApi { } @Override - public List getFieldEnum(List ids) { + public List getFieldEnum(MultFieldValuesRequest multFieldValuesRequest) { try { - return datasetDataManage.getFieldEnum(ids); + return datasetDataManage.getFieldEnum(multFieldValuesRequest); } catch (Exception e) { e.printStackTrace(); LogUtil.error(e); @@ -73,9 +74,9 @@ public class DatasetDataServer implements DatasetDataApi { } @Override - public List getFieldValueTree(List ids) throws Exception { + public List getFieldValueTree(MultFieldValuesRequest multFieldValuesRequest) throws Exception { try { - return datasetDataManage.getFieldValueTree(ids); + return datasetDataManage.getFieldValueTree(multFieldValuesRequest); } catch (Exception e) { e.printStackTrace(); LogUtil.error(e); diff --git a/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java b/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java index 1c5b91b07f..4a413fdbc6 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java @@ -70,7 +70,7 @@ public class DatasetFieldServer implements DatasetTableApi { @Override public List multFieldValuesForPermissions(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { - return datasetDataManage.getFieldEnum(multFieldValuesRequest.getFieldIds()); + return datasetDataManage.getFieldEnum(multFieldValuesRequest); } @Override diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetDataApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetDataApi.java index 899854d68e..c730656e0b 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetDataApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetDataApi.java @@ -3,6 +3,7 @@ package io.dataease.api.dataset; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.api.dataset.dto.BaseTreeNodeDTO; import io.dataease.api.dataset.dto.EnumValueRequest; +import io.dataease.api.dataset.dto.MultFieldValuesRequest; import io.dataease.api.dataset.dto.PreviewSqlDTO; import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.extensions.datasource.dto.DatasetTableDTO; @@ -39,7 +40,7 @@ public interface DatasetDataApi { @Operation(summary = "获取字段枚举值") @PostMapping("enumValue") - List getFieldEnum(@RequestBody List ids) throws Exception; + List getFieldEnum(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception; @Operation(summary = "获取字段枚举值(多字段)") @PostMapping("enumValueObj") @@ -51,5 +52,5 @@ public interface DatasetDataApi { @Operation(summary = "获取下拉树数据", hidden = true) @PostMapping("getFieldTree") - List getFieldValueTree(@RequestBody List ids) throws Exception; + List getFieldValueTree(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception; } diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java index 72a205b5e2..94a0b93f6d 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java @@ -16,4 +16,5 @@ public class EnumValueRequest { private String sort;// 排序 asc||desc private String searchText;// 搜索内容,以 field like '%text%' 拼接到SQL private List filter;// 级联查询条件,多个条件之间用and拼接到SQL + private Integer resultMode = 0;// 请求条数,0-默认,1-全部 } diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/MultFieldValuesRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/MultFieldValuesRequest.java index bfffbb100f..a7be04dbb8 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/MultFieldValuesRequest.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/MultFieldValuesRequest.java @@ -9,8 +9,9 @@ import java.util.List; @Data public class MultFieldValuesRequest { List fieldIds = new ArrayList<>(); - Long userId= null; + Long userId = null; private DeSortDTO sort; + private Integer resultMode = 0; }