forked from github/dataease
Merge pull request #10955 from dataease/pr@dev-v2@feat_filter
feat: 下拉组件的下拉选择展示支持全部和默认两种选择 #10770
This commit is contained in:
commit
938afc0ac7
@ -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<String> getFieldEnum(List<Long> ids) throws Exception {
|
||||
public List<String> getFieldEnum(MultFieldValuesRequest multFieldValuesRequest) throws Exception {
|
||||
// 根据前端传的查询组件field ids,获取所有字段枚举值并去重合并
|
||||
List<List<String>> 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<BaseTreeNodeDTO> getFieldValueTree(List<Long> ids) throws Exception {
|
||||
public List<BaseTreeNodeDTO> getFieldValueTree(MultFieldValuesRequest multFieldValuesRequest) throws Exception {
|
||||
List<Long> 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);
|
||||
|
||||
|
@ -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<String> getFieldEnum(List<Long> ids) {
|
||||
public List<String> 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<BaseTreeNodeDTO> getFieldValueTree(List<Long> ids) throws Exception {
|
||||
public List<BaseTreeNodeDTO> getFieldValueTree(MultFieldValuesRequest multFieldValuesRequest) throws Exception {
|
||||
try {
|
||||
return datasetDataManage.getFieldValueTree(ids);
|
||||
return datasetDataManage.getFieldValueTree(multFieldValuesRequest);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
LogUtil.error(e);
|
||||
|
@ -70,7 +70,7 @@ public class DatasetFieldServer implements DatasetTableApi {
|
||||
|
||||
@Override
|
||||
public List<String> multFieldValuesForPermissions(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception {
|
||||
return datasetDataManage.getFieldEnum(multFieldValuesRequest.getFieldIds());
|
||||
return datasetDataManage.getFieldEnum(multFieldValuesRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -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<String> getFieldEnum(@RequestBody List<Long> ids) throws Exception;
|
||||
List<String> getFieldEnum(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception;
|
||||
|
||||
@Operation(summary = "获取字段枚举值(多字段)")
|
||||
@PostMapping("enumValueObj")
|
||||
@ -51,5 +52,5 @@ public interface DatasetDataApi {
|
||||
|
||||
@Operation(summary = "获取下拉树数据", hidden = true)
|
||||
@PostMapping("getFieldTree")
|
||||
List<BaseTreeNodeDTO> getFieldValueTree(@RequestBody List<Long> ids) throws Exception;
|
||||
List<BaseTreeNodeDTO> getFieldValueTree(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception;
|
||||
}
|
||||
|
@ -16,4 +16,5 @@ public class EnumValueRequest {
|
||||
private String sort;// 排序 asc||desc
|
||||
private String searchText;// 搜索内容,以 field like '%text%' 拼接到SQL
|
||||
private List<ChartExtFilterDTO> filter;// 级联查询条件,多个条件之间用and拼接到SQL
|
||||
private Integer resultMode = 0;// 请求条数,0-默认,1-全部
|
||||
}
|
||||
|
@ -9,8 +9,9 @@ import java.util.List;
|
||||
@Data
|
||||
public class MultFieldValuesRequest {
|
||||
List<Long> fieldIds = new ArrayList<>();
|
||||
Long userId= null;
|
||||
Long userId = null;
|
||||
|
||||
private DeSortDTO sort;
|
||||
private Integer resultMode = 0;
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user