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"]) {
|
if hasNonEmptyIDs(filters["creator_in"]) {
|
||||||
return filters
|
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
|
// 如果传递了 plan_id_eq 或 reseller_id_eq 且不为空,则不再过滤 creator
|
||||||
if ds == "marketing" && (main == "order" || main == "order_info") {
|
if ds == "marketing" && (main == "order" || main == "order_info") {
|
||||||
if v, ok := filters["plan_id_eq"]; ok && v != nil && v != "" && v != 0 {
|
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:
|
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
|
// account
|
||||||
if v, ok := pickFirst(perm, filters, []string{"account", "account_no"}); ok {
|
if v, ok := pickFirst(perm, filters, []string{"account", "account_no"}); ok {
|
||||||
filters["account_eq"] = v
|
filters["account_eq"] = v
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue