From 07cdb9c8b2efc2203c7bc8211adc37932ef27802 Mon Sep 17 00:00:00 2001 From: junjun Date: Fri, 22 Dec 2023 11:36:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=86=E5=9B=BE=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=99=A8=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/ChartViewOldDataMergeService.java | 230 +++++++----------- 1 file changed, 82 insertions(+), 148 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java index a33141b1b2..7d33053bae 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewOldDataMergeService.java @@ -64,80 +64,8 @@ public class ChartViewOldDataMergeService { // 将 '[]' 转换成 '{}' view.setCustomFilter("{}"); } else { - FilterTreeObj tree = new FilterTreeObj(); - tree.setItems(new ArrayList<>()); - if (fieldCustomFilter.size() == 1) { - ChartFieldCustomFilterDTO filterDTO = fieldCustomFilter.get(0); - tree.setLogic(filterDTO.getLogic()); - if (StringUtils.equalsIgnoreCase(filterDTO.getFilterType(), "enum")) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(filterDTO.getId()); - item.setFilterType(filterDTO.getFilterType()); - item.setEnumValue(filterDTO.getEnumCheckField()); - tree.getItems().add(item); - } else { - List filter = filterDTO.getFilter(); - if (CollectionUtils.isNotEmpty(filter)) { - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(filterDTO.getId()); - item.setFilterType(filterDTO.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); - } - } - } - } else { - tree.setLogic("and"); - for (ChartFieldCustomFilterDTO dto : fieldCustomFilter) { - if (StringUtils.equalsIgnoreCase(dto.getFilterType(), "enum")) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(dto.getId()); - item.setFilterType(dto.getFilterType()); - item.setEnumValue(dto.getEnumCheckField()); - tree.getItems().add(item); - } else { - List filter = dto.getFilter(); - if (CollectionUtils.isNotEmpty(filter)) { - if (filter.size() == 1) { - ChartCustomFilterItemDTO f = filter.get(0); - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(dto.getId()); - item.setFilterType(dto.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); - } else { - FilterTreeItem item = new FilterTreeItem(); - item.setType("tree"); - item.setEnumValue(new ArrayList<>()); - FilterTreeObj subTree = new FilterTreeObj(); - subTree.setLogic(dto.getLogic()); - subTree.setItems(new ArrayList<>()); - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem itemTree = new FilterTreeItem(); - itemTree.setType("item"); - itemTree.setFieldId(dto.getId()); - itemTree.setFilterType(dto.getFilterType()); - itemTree.setTerm(f.getTerm()); - itemTree.setValue(f.getValue()); - itemTree.setEnumValue(new ArrayList<>()); - subTree.getItems().add(itemTree); - } - item.setSubTree(subTree); - tree.getItems().add(item); - } - } - } - } - } + // array -> tree + FilterTreeObj tree = transArr2Obj(fieldCustomFilter); view.setCustomFilter(gson.toJson(tree)); } @@ -178,80 +106,8 @@ public class ChartViewOldDataMergeService { // 将 '[]' 转换成 '{}' view.setCustomFilter("{}"); } else { - FilterTreeObj tree = new FilterTreeObj(); - tree.setItems(new ArrayList<>()); - if (fieldCustomFilter.size() == 1) { - ChartFieldCustomFilterDTO filterDTO = fieldCustomFilter.get(0); - tree.setLogic(filterDTO.getLogic()); - if (StringUtils.equalsIgnoreCase(filterDTO.getFilterType(), "enum")) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(filterDTO.getId()); - item.setFilterType(filterDTO.getFilterType()); - item.setEnumValue(filterDTO.getEnumCheckField()); - tree.getItems().add(item); - } else { - List filter = filterDTO.getFilter(); - if (CollectionUtils.isNotEmpty(filter)) { - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(filterDTO.getId()); - item.setFilterType(filterDTO.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); - } - } - } - } else { - tree.setLogic("and"); - for (ChartFieldCustomFilterDTO dto : fieldCustomFilter) { - if (StringUtils.equalsIgnoreCase(dto.getFilterType(), "enum")) { - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(dto.getId()); - item.setFilterType(dto.getFilterType()); - item.setEnumValue(dto.getEnumCheckField()); - tree.getItems().add(item); - } else { - List filter = dto.getFilter(); - if (CollectionUtils.isNotEmpty(filter)) { - if (filter.size() == 1) { - ChartCustomFilterItemDTO f = filter.get(0); - FilterTreeItem item = new FilterTreeItem(); - item.setType("item"); - item.setFieldId(dto.getId()); - item.setFilterType(dto.getFilterType()); - item.setTerm(f.getTerm()); - item.setValue(f.getValue()); - item.setEnumValue(new ArrayList<>()); - tree.getItems().add(item); - } else { - FilterTreeItem item = new FilterTreeItem(); - item.setType("tree"); - item.setEnumValue(new ArrayList<>()); - FilterTreeObj subTree = new FilterTreeObj(); - subTree.setLogic(dto.getLogic()); - subTree.setItems(new ArrayList<>()); - for (ChartCustomFilterItemDTO f : filter) { - FilterTreeItem itemTree = new FilterTreeItem(); - itemTree.setType("item"); - itemTree.setFieldId(dto.getId()); - itemTree.setFilterType(dto.getFilterType()); - itemTree.setTerm(f.getTerm()); - itemTree.setValue(f.getValue()); - itemTree.setEnumValue(new ArrayList<>()); - subTree.getItems().add(itemTree); - } - item.setSubTree(subTree); - tree.getItems().add(item); - } - } - } - } - } + // array -> tree + FilterTreeObj tree = transArr2Obj(fieldCustomFilter); view.setCustomFilter(gson.toJson(tree)); } @@ -263,4 +119,82 @@ public class ChartViewOldDataMergeService { } } } + + public FilterTreeObj transArr2Obj(List fieldCustomFilter) { + FilterTreeObj tree = new FilterTreeObj(); + tree.setItems(new ArrayList<>()); + if (fieldCustomFilter.size() == 1) { + ChartFieldCustomFilterDTO filterDTO = fieldCustomFilter.get(0); + tree.setLogic(filterDTO.getLogic()); + if (StringUtils.equalsIgnoreCase(filterDTO.getFilterType(), "enum")) { + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(filterDTO.getId()); + item.setFilterType(filterDTO.getFilterType()); + item.setEnumValue(filterDTO.getEnumCheckField()); + tree.getItems().add(item); + } else { + List filter = filterDTO.getFilter(); + if (CollectionUtils.isNotEmpty(filter)) { + for (ChartCustomFilterItemDTO f : filter) { + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(filterDTO.getId()); + item.setFilterType(filterDTO.getFilterType()); + item.setTerm(f.getTerm()); + item.setValue(f.getValue()); + item.setEnumValue(new ArrayList<>()); + tree.getItems().add(item); + } + } + } + } else { + tree.setLogic("and"); + for (ChartFieldCustomFilterDTO dto : fieldCustomFilter) { + if (StringUtils.equalsIgnoreCase(dto.getFilterType(), "enum")) { + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(dto.getId()); + item.setFilterType(dto.getFilterType()); + item.setEnumValue(dto.getEnumCheckField()); + tree.getItems().add(item); + } else { + List filter = dto.getFilter(); + if (CollectionUtils.isNotEmpty(filter)) { + if (filter.size() == 1) { + ChartCustomFilterItemDTO f = filter.get(0); + FilterTreeItem item = new FilterTreeItem(); + item.setType("item"); + item.setFieldId(dto.getId()); + item.setFilterType(dto.getFilterType()); + item.setTerm(f.getTerm()); + item.setValue(f.getValue()); + item.setEnumValue(new ArrayList<>()); + tree.getItems().add(item); + } else { + FilterTreeItem item = new FilterTreeItem(); + item.setType("tree"); + item.setEnumValue(new ArrayList<>()); + FilterTreeObj subTree = new FilterTreeObj(); + subTree.setLogic(dto.getLogic()); + subTree.setItems(new ArrayList<>()); + for (ChartCustomFilterItemDTO f : filter) { + FilterTreeItem itemTree = new FilterTreeItem(); + itemTree.setType("item"); + itemTree.setFieldId(dto.getId()); + itemTree.setFilterType(dto.getFilterType()); + itemTree.setTerm(f.getTerm()); + itemTree.setValue(f.getValue()); + itemTree.setEnumValue(new ArrayList<>()); + subTree.getItems().add(itemTree); + } + item.setSubTree(subTree); + tree.getItems().add(item); + } + } + } + } + } + return tree; + } }