From 13b4ff56df52778d29f8d0f6d72a697cbd730088 Mon Sep 17 00:00:00 2001 From: zhouyonggao <1971162852@qq.com> Date: Thu, 18 Dec 2025 23:34:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(api):=20=E4=BC=98=E5=8C=96=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=BF=87=E6=BB=A4=E5=99=A8=E4=B8=AD=20plan=5Fid=5Feq?= =?UTF-8?q?=20=E4=B8=8E=20reseller=5Fid=5Feq=20=E7=9A=84=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 plan_id_eq 和 reseller_id_eq 的赋值提至过滤 creator 判断之前 - 避免重复映射相同的权限边界字段 - 保持营销数据集订单相关过滤条件的正确性 - 简化 skipCreator 标签区域中重复的代码逻辑 --- server/internal/api/exports.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/server/internal/api/exports.go b/server/internal/api/exports.go index 6212503..8d904f3 100644 --- a/server/internal/api/exports.go +++ b/server/internal/api/exports.go @@ -1559,6 +1559,13 @@ func mergePermissionIntoFilters(ds, main string, perm map[string]interface{}, fi if hasNonEmptyIDs(filters["creator_in"]) { return filters } + // 先处理 plan_id_eq 和 reseller_id_eq 的设置 + if v, ok := pickFirst(perm, filters, []string{"reseller_id", "merchant_id"}); ok { + filters["reseller_id_eq"] = v + } + if v, ok := pickFirst(perm, filters, []string{"plan_id", "activity_id"}); ok { + filters["plan_id_eq"] = v + } // 如果传递了 plan_id_eq 或 reseller_id_eq 且不为空,则不再过滤 creator if ds == "marketing" && (main == "order" || main == "order_info") { if v, ok := filters["plan_id_eq"]; ok && v != nil && v != "" && v != 0 { @@ -1600,15 +1607,6 @@ func mergePermissionIntoFilters(ds, main string, perm map[string]interface{}, fi } } skipCreator: - // map alternative permission boundaries to supported filters - // reseller/merchant -> reseller_id_eq - if v, ok := pickFirst(perm, filters, []string{"reseller_id", "merchant_id"}); ok { - filters["reseller_id_eq"] = v - } - // plan/activity -> plan_id_eq - if v, ok := pickFirst(perm, filters, []string{"plan_id", "activity_id"}); ok { - filters["plan_id_eq"] = v - } // account if v, ok := pickFirst(perm, filters, []string{"account", "account_no"}); ok { filters["account_eq"] = v