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