feat(favorites): 支持设备批量取消收藏

This commit is contained in:
Zhou Weidong committed 2026-10-27 10:33:59 +08:00
1 parent 5d44ac239b
commit 23321a0b0c
8 files changed
+147 -6

No files matched your search

+33 -1
View File
@@ -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`