forked from xiongyuxing/tiku-backend.net
1.9 KiB
1.9 KiB
第七阶段:学生端体验与内容消费闭环
状态:已完成。
目标
- 补齐学生端视频消费、Profile 签到、积分流水和内容导入异步化。
- 不实现 AI 业务功能;AI 进入第八阶段。
结果
学生端视频接口:
GET /api/videos/searchPOST /api/videos/playPOST /api/videos/progressGET /api/questions/videosPOST /api/questions/videos/batch
Profile 与积分接口:
POST /api/profile/check-inGET /api/profile/score-events
内容导入入口:
POST /api/tenant-content/imports/preview/{importType}POST /api/tenant-content/imports/{importType}GET /api/tenant-content/imports/detail
边界
- 播放接口不暴露 OSS bucket、真实 object key 或 provider 细节。
- 公共题和租户私题关联视频都必须按当前租户可见性校验。
- 播放进度按租户、用户、视频、题目维度幂等更新。
- 签到复用积分任务和积分流水;同一用户、同一租户、同一天只能成功一次。
questions、vocabulary、handbook、scoreline、videos导入语义统一映射为importType。- 大批量导入创建
content_import后台任务,Worker 使用ITenantExecutionScope执行。 - 本阶段未实现
/api/ai/**。SK 包和 AI provider 边界在第八阶段引入。
旧接口替代
/api/profile/activity-tasks->/api/points/tasks/api/profile/exchange-items->/api/points/exchange-items/api/profile/exchange-items/redeem->/api/points/exchange-orders
验收
- 租户 A 不能播放租户 B 视频。
- 公共题和租户私题解析视频都按权限返回。
- 播放进度重复上报不产生重复记录。
- 每日签到同一天只能成功一次。
- 签到、积分任务和兑换产生可查询积分流水。
- 异步导入创建
content_importjob,Worker 成功写入结果。