From 5e763b7b1aa792ab482f03431d989ad6e5b612d5 Mon Sep 17 00:00:00 2001 From: junjun Date: Fri, 22 Dec 2023 12:03:31 +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 --- .../service/chart/ChartViewService.java | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index cef39a3364..198356752d 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -34,6 +34,7 @@ import io.dataease.plugins.common.constants.DatasetType; import io.dataease.plugins.common.constants.DatasourceTypes; import io.dataease.plugins.common.constants.datasource.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartFieldCompareDTO; +import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO; import io.dataease.plugins.common.dto.dataset.SqlVariableDetails; import io.dataease.plugins.common.exception.DataEaseException; @@ -57,7 +58,6 @@ import io.dataease.service.datasource.DatasourceService; import io.dataease.service.engine.EngineService; import io.dataease.service.panel.PanelGroupExtendDataService; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.pentaho.di.core.util.UUIDUtil; @@ -124,6 +124,8 @@ public class ChartViewService { private DatasetTableFieldMapper datasetTableFieldMapper; @Resource private ChartFilterTreeService chartFilterTreeService; + @Resource + private ChartViewOldDataMergeService chartViewOldDataMergeService; private static final Logger logger = LoggerFactory.getLogger(ChartViewService.class); @@ -285,6 +287,9 @@ public class ChartViewService { if (result == null) { DataEaseException.throwException(Translator.get("i18n_chart_delete")); } + // trans chart filter + tranChartFilter(result); + DatasetTable datasetTable = dataSetTableService.get(result.getTableId()); if (ObjectUtils.isNotEmpty(datasetTable)) { result.setDatasetMode(datasetTable.getMode()); @@ -2339,4 +2344,26 @@ public class ChartViewService { } return list; } + + public void tranChartFilter(ChartViewDTO view) { + Type filterTokenType = new TypeToken>() { + }.getType(); + + List fieldCustomFilter; + // 尝试将历史数据转成list,如果转换出现异常,则忽略该视图继续执行下一个 + try { + fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType); + } catch (Exception e) { + return; + } + + if (CollectionUtils.isEmpty(fieldCustomFilter)) { + // 将 '[]' 转换成 '{}' + view.setCustomFilter("{}"); + } else { + // array -> tree + FilterTreeObj tree = chartViewOldDataMergeService.transArr2Obj(fieldCustomFilter); + view.setCustomFilter(gson.toJson(tree)); + } + } }