视觉按最新原型,业务按已确认PRD。现有代码为满足设计而改造。执行见按设计实施与任务卡;当前代码与验证范围见消费者功能页。
内容归并:保留追剧、进度与观看记录
2026-10-04。实现已写入「短剧库」的 platform、Payload 后台和 Web,以及「juku-mobile」的播放进度模块。CF 站点仍是在线文档与设计预览,业务服务未发布。
本轮实现
- 后台逐集核对后,可明确勾选“同一剪辑,迁移追剧与进度”。默认不勾选,有用户状态的普通改绑继续拒绝。
- 仅接受旧剧一个版本、两端完整且一一对应的分集映射。不同剪辑、缺集和多版本内容需要另行核对;不会按剧名自动合并。
- 同版本的全部来源一起改绑,保留来源编号和原播放入口。追剧爱心合并;逐集完成事实保留,位置采用最近有效记录,支持两边集号不同。
- 最近仍有效的播放上报会话继续记录当前位置。较旧会话到期,不能抢回记录;删除历史和注销的限制保持有效。
- 原观看账本、解锁、预留和离线资产保留原始 ID 与内容。受审核的剧/集别名用于识别同一内容,当天重播不重复扣次。合并不返还以前已经消耗的额度,也不重置设备预算。
- 邀请的有效观看按归并后的唯一集统计,不用旧、新两个 ID 充当两集。不复制其他来源的离线资格或延长缓存许可。
- Web/App 上报继续携带打开时的身份,由服务端解析审核过的别名。普通改绑无法让旧页面自动记录另一部剧。Web 收到新身份后清除旧列表项,并重新读取实际集号。
- 后台可依据原操作编号撤销。若之后已有进度、追剧、订单等变化,则拒绝自动撤销,避免覆盖新状态;提交响应丢失时重试原编号可恢复结果。
权限与隐私
沿用 Payload 官方会话、当前管理员角色、既有事务、表锁和普通操作 UUID,没有新增发布门禁或另一套任务系统。游客和普通运营不能执行归并或撤销;浏览器看不到消费者快照或内部 token。
撤销所需的个人状态副本最多保留7天,复用现有会话清理任务删除。用户清除相关历史或注销时立即移除这些副本,此后不能用撤销恢复已删除记录。最小操作审计及别名保留。
验证
| 范围 | 最新结果 | 说明 |
|---|---|---|
| platform 全量 | 212/212 | 真实隔离 RAM PostgreSQL、官方认证与业务回归;本模块9个子测试加1个外层测试 |
| Payload 全量 | 77/77 | 官方身份、角色撤销、真实管理接口、丢失响应与重试 |
| Web 全量 | 164/164 | 实际页面逻辑;含归并后的进度身份与本地历史清理 |
| App 全量 | 270/270,类型检查通过 | 实际 RN 模块;原生、网络和存储部分使用明确的测试适配器 |
| 生产构建后台 + Chrome | 5组通过 | Next/Payload、真实 Go 元数据导入、真实 core 事务与 RAM PostgreSQL,390/1280宽度 |
| Web/RN进度联合验证 | 4组通过 | 实际双端控制器直接调用真实 core/PG:当前播放、下一集、删除与未审核改绑 |
测试媒体元数据和邮箱使用本地适配器,没有访问真实上游视频、SMTP 或生产数据库。联合进度检查没有执行实体设备、解码器或实际网络。
一次早期全量运行邀请 HTTP 场景的注册后绑定为空,导致210/212通过。单项5/5与随后全量212/212通过,但尚未定位那次失败的原因;保留原始失败日志,不称为已修复。
升级与下一步
显式调用现有 migrateCatalog 增加审计迁移字段、剧/集别名及对应函数;不是新增 Payload 迁移。先备份元数据并在隔离环境验证,再安排真实升级。本轮没有迁移既有数据库、提交/推送或发布 API、App/OTA。
下一步继续广告、收费与通知关闭态的运行接线。真实渠道、观看签发、离线许可、邮箱和实体设备验收仍需完成。
主 Agent 复核 · 实际后台390宽度 · 撤销入口
可导入检查:runMergeBrowserFixture 与 runMergeProgressFixture。使用本机现有项目、依赖和 RAM 测试数据库;函数结束会清理测试服务。迁移机器时需调整绝对路径。