docs(api): add ppv broadcast bootstrap endpoint

This commit is contained in:
qingfeng 2026-04-18 13:24:23 +08:00
parent ae9732b692
commit 5998b07b04
2 changed files with 88 additions and 9 deletions

View File

@ -1,6 +1,6 @@
# API-06 PPV系统PPV
> 当前共 12 个接口PPV-01 ~ PPV-12
> 当前共 13 个接口PPV-01 ~ PPV-12另含 PPV-04A
> 本文档已按 2026-04-09 当前后端实现整理,并结合真实 HTTP 联调结果更新。
---
@ -269,6 +269,81 @@
---
## PPV-04A 群发PPV页面初始化
| 项目 | 说明 |
|------|------|
| 接口路径 | `GET /client/api/v1/ppv/broadcast/bootstrap` |
| 接口用途 | 群发 PPV 页面初始化聚合接口;一次返回素材、订阅档位、发送范围、价格预设和引导文案模板 |
| 权限要求 | 创作者 |
| 涉及表 | `ppv_material`、`media`、`subscription_tier`、`user_subscription` |
### 接口逻辑
1. 校验当前登录用户必须为创作者
2. 复用素材库查询逻辑,返回当前创作者自己的 PPV 素材分页数据
3. 查询当前创作者自己的订阅档位和各档订阅人数
4. 仅返回已启用的付费档位到 `tierOptions`
5. 返回固定发送范围:
- `all_followers`
- `subscribers_only`
- `tier`
6. 返回固定价格预设:`30 / 50 / 99 / 199 / 300`
7. 返回固定引导文案配置:
- `guideText.maxLength = 80`
- 分类 `PPV引导`
- 模版 `s15 / s16 / s17 / s18`
8. 返回页面默认值:
- `defaults.targetType = all_followers`
- `defaults.price = 300`
### 请求参数
| 字段 | 类型 | 必选 | 说明 |
|------|------|------|------|
| type | string | 否 | 素材类型过滤:`image / video / gallery` |
| page | number | 否 | 默认 1 |
| pageSize | number | 否 | 默认 20 |
### 响应数据
| 字段 | 类型 | 说明 |
|------|------|------|
| materials | object | 素材分页数据,结构与 `GET /client/api/v1/ppv/materials` 一致 |
| tierOptions | array | 可用于“指定订阅等级”的已启用付费档位 |
| tierOptions[].tierId | string | 档位 ID |
| tierOptions[].tierLevel | number | 档位等级 |
| tierOptions[].tierKey | string | 档位标识,如 `basic / supreme` |
| tierOptions[].name | string | 档位名称 |
| tierOptions[].price | number | 档位价格 |
| tierOptions[].subscriberCount | number | 当前档位订阅人数 |
| targetOptions | array | 固定发送范围选项 |
| targetOptions[].targetType | string | `all_followers / subscribers_only / tier` |
| targetOptions[].title | string | 前端展示标题 |
| targetOptions[].description | string | 前端展示描述 |
| targetOptions[].requiresTierSelection | boolean | 是否需要进一步选择订阅等级 |
| pricePresets | number[] | 固定价格预设:`[30, 50, 99, 199, 300]` |
| guideText.maxLength | number | 引导文案最大长度,固定 `80` |
| guideText.categories | array | 引导文案分类列表 |
| guideText.categories[].categoryKey | string | 分类 key当前固定 `ppv_guide` |
| guideText.categories[].categoryName | string | 分类名称,当前固定 `PPV引导` |
| guideText.categories[].templates | array | 分类下模板列表 |
| guideText.categories[].templates[].templateId | string | 模板 ID`s15 / s16 / s17 / s18` |
| guideText.categories[].templates[].text | string | 模板文案原文;占位变量由客户端自行替换 |
| defaults.targetType | string | 页面默认发送范围,固定 `all_followers` |
| defaults.price | number | 页面默认价格,固定 `300` |
### 当前模板
| templateId | text |
|------------|------|
| s15 | 这套只剩最后一点时间了哦⏳ {宝宝/用户昵称}快去解锁,别等没了才后悔~ |
| s16 | {创作者昵称}这套真的拍得很用心😍 解锁了你一定心动,专门留给你一个人看的 |
| s17 | 刚发的那套好多人都去解锁了📲 {宝宝/用户昵称}你快看看,晚了感觉好亏哦~ |
| s18 | {宝宝/用户昵称}一直都很支持我💕 这套就是专门给懂我的人准备的,解锁一下吧~ |
---
## PPV-05 群发PPV
| 项目 | 说明 |

View File

@ -16,7 +16,7 @@
| 03 | [代币支付](API-03-代币支付.md) | 11 | COIN-01~09 + IAP-01~02 |
| 04 | [内容系统](API-04-内容系统.md) | 18 | CONTENT-01~17含02b |
| 05 | [订阅系统](API-05-订阅系统.md) | 8 | SUB-01~08 |
| 06 | [PPV系统](API-06-PPV系统.md) | 7 | PPV-01~07 |
| 06 | [PPV系统](API-06-PPV系统.md) | 13 | PPV-01~12 + PPV-04A |
| 07 | [消息系统](API-07-消息系统.md) | 7 | MSG-01~07 |
| 08 | [创作者系统](API-08-创作者系统.md) | 11 | CREATOR-01~11 |
| 09 | [提现系统](API-09-提现系统.md) | 6 | WD-01~06 |
@ -99,16 +99,20 @@
- SUB-07 设置订阅档位(创作者) — `PUT /client/api/v1/subscription/tiers/settings`
- SUB-08 取消订阅 — `POST /client/api/v1/subscription/:subscriptionId/cancel`
### 06 PPV系统9个)
### 06 PPV系统13个)
- PPV-01 上传PPV素材 — `POST /client/api/v1/ppv/material`
- PPV-02 获取PPV素材库 — `GET /client/api/v1/ppv/materials`
- PPV-03 发送PPV消息 — `POST /client/api/v1/ppv/send`
- PPV-04 群发PPV — `POST /client/api/v1/ppv/broadcast`
- PPV-05 解锁PPV — `POST /client/api/v1/ppv/:ppvMessageId/unlock`
- PPV-06 获取已解锁PPV签名URL — `GET /client/api/v1/ppv/:ppvMessageId/signed-url`
- PPV-07 获取已购买内容列表 — `GET /client/api/v1/ppv/purchased`
- PPV-08 获取已购买素材签名URL — `GET /client/api/v1/ppv/material/:materialId/signed-url`
- PPV-09 删除PPV素材 — `DELETE /client/api/v1/ppv/material/:materialId`
- PPV-04 发送PPV消息回执绑定 — `POST /client/api/v1/ppv/send/bind`
- PPV-04A 群发PPV页面初始化 — `GET /client/api/v1/ppv/broadcast/bootstrap`
- PPV-05 群发PPV — `POST /client/api/v1/ppv/broadcast`
- PPV-06 批量查询PPV状态 — `POST /client/api/v1/ppv/status/batch`
- PPV-07 解锁PPV — `POST /client/api/v1/ppv/:ppvMessageId/unlock`
- PPV-08 按素材ID直接解锁PPV — `POST /client/api/v1/ppv/material/:materialId/unlock`
- PPV-09 获取已解锁PPV签名URL — `GET /client/api/v1/ppv/:ppvMessageId/signed-url`
- PPV-10 删除PPV素材 — `DELETE /client/api/v1/ppv/material/:materialId`
- PPV-11 获取已购买内容列表 — `GET /client/api/v1/ppv/purchased`
- PPV-12 获取已购买素材签名URL — `GET /client/api/v1/ppv/material/:materialId/signed-url`
### 07 消息系统7个
- MSG-01 获取会话列表 — `GET /client/api/v1/message/conversations`