From 045adb1d931d1321a335b422ba6f15106ab039f3 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 23 Sep 2025 19:35:27 +0800 Subject: [PATCH] :art: Improve av filter Signed-off-by: Daniel <845765@qq.com> --- kernel/av/filter.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/kernel/av/filter.go b/kernel/av/filter.go index 61fd32293..1477650ee 100644 --- a/kernel/av/filter.go +++ b/kernel/av/filter.go @@ -154,8 +154,11 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } // 单独处理汇总 - if nil != value.Rollup && KeyTypeRollup == value.Type && nil != filter.Value && KeyTypeRollup == filter.Value.Type && - nil != filter.Value.Rollup && 0 < len(filter.Value.Rollup.Contents) { + if nil != value.Rollup && KeyTypeRollup == value.Type && nil != filter.Value && KeyTypeRollup == filter.Value.Type && nil != filter.Value.Rollup { + if 1 > len(filter.Value.Rollup.Contents) { + return true + } + key, _ := attrView.GetKey(value.KeyID) if nil == key { return false @@ -214,8 +217,11 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } // 单独处理关联 - if nil != value.Relation && KeyTypeRelation == value.Type && nil != filter.Value && KeyTypeRelation == filter.Value.Type && - nil != filter.Value.Relation && 0 < len(filter.Value.Relation.BlockIDs) { + if nil != value.Relation && KeyTypeRelation == value.Type && nil != filter.Value && KeyTypeRelation == filter.Value.Type && nil != filter.Value.Relation { + if 1 > len(filter.Value.Relation.BlockIDs) { + return true + } + for _, relationValue := range value.Relation.Contents { filterValue := &Value{Type: KeyTypeBlock, Block: &ValueBlock{Content: filter.Value.Relation.BlockIDs[0]}}