提交 cf1be882 authored 作者: junjie's avatar junjie

feat(视图): 支持过滤组件多字段过滤

上级 2b42af92
...@@ -245,19 +245,29 @@ public class ChartViewService { ...@@ -245,19 +245,29 @@ public class ChartViewService {
// 过滤来自仪表板的条件 // 过滤来自仪表板的条件
List<ChartExtFilterRequest> extFilterList = new ArrayList<>(); List<ChartExtFilterRequest> extFilterList = new ArrayList<>();
//组件过滤条件 //组件过滤条件
if (ObjectUtils.isNotEmpty(requestList.getFilter())) { if (ObjectUtils.isNotEmpty(requestList.getFilter())) {
for (ChartExtFilterRequest request : requestList.getFilter()) { for (ChartExtFilterRequest request : requestList.getFilter()) {
DatasetTableField datasetTableField = dataSetTableFieldsService.get(request.getFieldId()); // 解析多个fieldId,fieldId是一个逗号分隔的字符串
request.setDatasetTableField(datasetTableField); String fieldId = request.getFieldId();
if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { if (StringUtils.isNotEmpty(fieldId)) {
if (CollectionUtils.isNotEmpty(request.getViewIds())) { String[] fieldIds = fieldId.split(",");
if (request.getViewIds().contains(view.getId())) { for (String fId : fieldIds) {
extFilterList.add(request); ChartExtFilterRequest filterRequest = new ChartExtFilterRequest();
BeanUtils.copyBean(filterRequest, request);
filterRequest.setFieldId(fId);
DatasetTableField datasetTableField = dataSetTableFieldsService.get(fId);
filterRequest.setDatasetTableField(datasetTableField);
if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) {
if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) {
if (filterRequest.getViewIds().contains(view.getId())) {
extFilterList.add(filterRequest);
}
} else {
extFilterList.add(filterRequest);
}
} }
} else {
extFilterList.add(request);
} }
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论