From 289ce088c88949cc2d7f9d84ff6ad16a4a784904 Mon Sep 17 00:00:00 2001 From: chenchuchuan <13554600537@163.com> Date: Tue, 4 Aug 2026 10:43:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(filter):=20=E4=BF=AE=E5=A4=8D=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8=E4=B8=ADJSON=E5=AF=B9=E8=B1=A1=E5=80=BC?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加对columnValue为JSONObject类型的检查和转换逻辑 - 提取JSONObject中的id字段作为实际过滤值 - 确保所有过滤条件使用转换后的值进行比较 - 保持现有过滤器功能的向后兼容性 --- .../common/online/abstractplugin/ListDataOrmService.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/common/common-online/src/main/java/apelet/common/online/abstractplugin/ListDataOrmService.java b/common/common-online/src/main/java/apelet/common/online/abstractplugin/ListDataOrmService.java index 01b1119..73ba97f 100644 --- a/common/common-online/src/main/java/apelet/common/online/abstractplugin/ListDataOrmService.java +++ b/common/common-online/src/main/java/apelet/common/online/abstractplugin/ListDataOrmService.java @@ -40,14 +40,20 @@ public class ListDataOrmService extends ListDataService { protected Filter getFilter() { Filter f = super.getFilter(); for (OnlineFilterDto onlineFilterDto : filterDtoList) { + Object columnValue = onlineFilterDto.getColumnValue(); + if (columnValue instanceof JSONObject) { + JSONObject jsonObject = (JSONObject) columnValue; + columnValue = jsonObject.get("id"); + } + if (onlineFilterDto.getFilterType() == FieldFilterType.EQUAL_FILTER) { - f.add(new FilterItem(onlineFilterDto.getColumnName(), FilterItem.equals, onlineFilterDto.getColumnValue())); + f.add(new FilterItem(onlineFilterDto.getColumnName(), FilterItem.equals, columnValue)); } else if (onlineFilterDto.getFilterType() == FieldFilterType.EXSITS) { - f.add(new FilterItem(null, FilterItem.EXISTS, onlineFilterDto.getColumnValue())); + f.add(new FilterItem(null, FilterItem.EXISTS, columnValue)); } else if (onlineFilterDto.getFilterType() == FieldFilterType.IN_LIST_FILTER) { - f.add(new FilterItem(onlineFilterDto.getColumnName(), FilterItem.INNER, onlineFilterDto.getColumnValue())); + f.add(new FilterItem(onlineFilterDto.getColumnName(), FilterItem.INNER, columnValue)); } else if (onlineFilterDto.getFilterType() == FieldFilterType.LIKE_FILTER) { - f.add(new FilterItem(onlineFilterDto.getColumnName(), FilterItem.like, "%" + onlineFilterDto.getColumnValue() + "%")); + f.add(new FilterItem(onlineFilterDto.getColumnName(), FilterItem.like, "%" + columnValue + "%")); } else if (onlineFilterDto.getFilterType() == FieldFilterType.RANGE_FILTER) { if (onlineFilterDto.getColumnValueStart() != null) { f.add(new FilterItem(onlineFilterDto.getColumnName(), FilterItem.large_equals, onlineFilterDto.getColumnValueStart()));