fix(api): 优化权限过滤器中 plan_id_eq 与 reseller_id_eq 的设置逻辑
- 将 plan_id_eq 和 reseller_id_eq 的赋值提至过滤 creator 判断之前 - 避免重复映射相同的权限边界字段 - 保持营销数据集订单相关过滤条件的正确性 - 简化 skipCreator 标签区域中重复的代码逻辑
This commit is contained in:
parent
dd559f2f78
commit
13b4ff56df
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue