From 19fcd1a0341797f1d400aea82ce980be3b91fa3c Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 13 Jul 2023 23:34:13 +0800 Subject: [PATCH] :recycle: Refactor av data structure --- kernel/av/table.go | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/kernel/av/table.go b/kernel/av/table.go index 6b760f683..73cd62294 100644 --- a/kernel/av/table.go +++ b/kernel/av/table.go @@ -207,29 +207,34 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool if nil != value.MSelect && nil != other.MSelect && 0 < len(value.MSelect) && 0 < len(other.MSelect) { switch operator { case FilterOperatorIsEqual: - return value.MSelect[0].Content == other.MSelect[0].Content + contains := false + for _, v := range value.MSelect { + for _, v2 := range other.MSelect { + if v.Content == v2.Content { + contains = true + break + } + } + } + return contains case FilterOperatorIsNotEqual: - return value.MSelect[0].Content != other.MSelect[0].Content - case FilterOperatorContains: + contains := false for _, v := range value.MSelect { - if v.Content == other.MSelect[0].Content { - return true + for _, v2 := range other.MSelect { + if v.Content == v2.Content { + contains = true + break + } } } - case FilterOperatorDoesNotContain: - for _, v := range value.MSelect { - if v.Content == other.MSelect[0].Content { - return false - } - } - return true + return !contains case FilterOperatorIsEmpty: return 0 == len(value.MSelect) case FilterOperatorIsNotEmpty: return 0 != len(value.MSelect) } } - return false + return true } // Table 描述了表格实例的结构。