From cf1be88225d8acac9a4eda41e1a05f0849a05d26 Mon Sep 17 00:00:00 2001 From: junjie Date: Thu, 16 Dec 2021 16:17:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E7=BB=84=E4=BB=B6=E5=A4=9A=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ChartViewService.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 37838d15c6..ca84509167 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -245,19 +245,29 @@ public class ChartViewService { // 过滤来自仪表板的条件 List extFilterList = new ArrayList<>(); - //组件过滤条件 if (ObjectUtils.isNotEmpty(requestList.getFilter())) { for (ChartExtFilterRequest request : requestList.getFilter()) { - DatasetTableField datasetTableField = dataSetTableFieldsService.get(request.getFieldId()); - request.setDatasetTableField(datasetTableField); - if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { - if (CollectionUtils.isNotEmpty(request.getViewIds())) { - if (request.getViewIds().contains(view.getId())) { - extFilterList.add(request); + // 解析多个fieldId,fieldId是一个逗号分隔的字符串 + String fieldId = request.getFieldId(); + if (StringUtils.isNotEmpty(fieldId)) { + String[] fieldIds = fieldId.split(","); + for (String fId : fieldIds) { + 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); } } }