Files
junhong_cmp_fiber/docs/7月迭代/独立方案/新增需求/08-代理系列套餐批量授权.md
2026-07-17 16:39:41 +08:00

2.5 KiB

禅道补充需求:代理系列套餐批量授权

来源:禅道 #43。最终口径以标准评审稿为准。

一、现状与范围

系统已经存在代理系列授权和套餐授权数据,后端 PUT /api/admin/shop-series-grants/{id}/packages 也已经接受套餐数组。本需求不是重建授权模型,而是补齐套餐候选 Query 和前端批量交互。

当前主要问题:

  • 前端只能逐个授权套餐。
  • 首次授权系列和后续管理套餐时,看不出哪些套餐已经授权给当前代理。
  • 公司成本价、代理授权成本价和建议售价缺少明确区分。

二、套餐候选 Query

新增:

GET /api/admin/shop-series-grants/{id}/package-options

查询参数支持套餐名称、编码和授权状态。响应:

{
  "package_id": 1001,
  "package_name": "移动月包",
  "package_code": "CMCC-M01",
  "company_cost_price": 5000,
  "authorized_cost_price": 6500,
  "suggested_retail_price": 8800,
  "is_authorized": true,
  "shelf_status": 1,
  "status": 1
}

金额单位统一为分。authorized_cost_price 在未授权时返回 null

三、批量授权

继续使用现有批量写接口:

PUT /api/admin/shop-series-grants/{id}/packages

请求一次提交多个套餐:

{
  "packages": [
    {"package_id": 1001, "cost_price": 6500},
    {"package_id": 1002, "cost_price": 7000}
  ]
}
  • 同一请求内套餐 ID 必须去重。
  • 已经授权且价格相同的套餐按幂等成功处理。
  • 已经授权但价格不同的套餐不能被“新增授权”静默改价,应走明确的价格更新操作。
  • 套餐必须属于当前授权系列,后端不能只相信前端候选列表。
  • 批量写入在同一事务完成,任一套餐不合法则整批失败。

四、前端

首次创建系列授权和后续“管理套餐”共用同一个套餐选择组件:

  • 表格使用复选框多选。
  • 展示套餐名称、编码、公司成本价、当前授权成本价和建议售价。
  • 已授权套餐显示“已授权”标签并置灰,不可选择。
  • 支持只看未授权套餐和关键词搜索。
  • 提交前显示本次新增套餐数量和价格摘要。

已授权置灰只是交互反馈,后端仍负责幂等和归属校验。

五、权限与审计

公司成本价属于敏感字段,只有具备系列授权和成本价查看权限的角色可以读取。审计记录代理、系列、套餐列表、授权价格、操作人和变更前后数据。