feat(favorites): 支持设备批量取消收藏
This commit is contained in:
1 parent
5d44ac239b
commit
23321a0b0c
8 files changed
+147
-6
No files matched your search
+33
-1
@@ -360,7 +360,7 @@ app.register.max-per-device-per-day
|
||||
| POST | `/app/favorites/toggle` | 可选登录 | 收藏/取消收藏,返回切换后状态;匿名按 `X-Device-Id` |
|
||||
| GET | `/app/favorites` | 可选登录 | 收藏分页;匿名按设备读取,`pageIndex` 默认 1,`pageSize` 默认 20、上限 100 |
|
||||
| DELETE | `/app/favorites/{dramaId}` | 可选登录 | 取消收藏;匿名按 `X-Device-Id` |
|
||||
| POST | `/app/favorites/remove` | 登录 | 批量取消收藏,请求体 `{ "dramaIds": ["12", "15"] }` |
|
||||
| POST | `/app/favorites/remove` | 可选登录 | 批量取消收藏;匿名按 `X-Device-Id`,返回实际删除数量 |
|
||||
|
||||
进度合并规则:同一集内只前进不后退;换集直接采纳新集;`finished` 只在接近片尾或客户端显式上报时置位。
|
||||
这样用户换设备不会看到进度倒退。
|
||||
@@ -371,6 +371,38 @@ app.register.max-per-device-per-day
|
||||
同一部剧的进度先比较集号,同集再比较播放位置,最后用更新时间兜底,只保留更靠前的一条;
|
||||
观看流水按剧集去重并保留更靠后的位置。`playCount` 只取最终保留记录,不重复累加。
|
||||
|
||||
#### 批量取消收藏
|
||||
|
||||
`POST /app/favorites/remove`
|
||||
|
||||
```json
|
||||
{
|
||||
"dramaIds": ["12", "15"],
|
||||
"deviceId": "optional-device-id"
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `dramaIds` | array<Long> | 是 | 待取消的短剧 ID,最多 200 条,服务端去重后删除 |
|
||||
| `deviceId` | string | 否 | 未登录且未携带 `X-Device-Id` 时的设备号兜底 |
|
||||
|
||||
身份解析优先登录用户,其次 `X-Device-Id`,最后请求体 `deviceId`。登录用户按
|
||||
`user_id` 删除,匿名用户按 `device_id` 删除;匿名写操作沿用设备级限流。
|
||||
所有删除和剧级收藏数回退在单一事务内完成,其中任一步失败会整体回滚。
|
||||
|
||||
响应 `data` 为实际删除的收藏关系数:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "ok",
|
||||
"data": 2
|
||||
}
|
||||
```
|
||||
|
||||
空列表返回业务码 `400`;超过 200 条同样返回 `400`。
|
||||
|
||||
#### 收藏分页
|
||||
|
||||
`GET /app/favorites?pageIndex=1&pageSize=20`
|
||||
|
||||
Reference in new issue
Block a user