feat(viral-video): 爆款视频积分动态预估(estimate-credits) #2151

Merged
auto-approve-bot merged 2 commits from feat/viral-video-dynamic-credits into develop 2026-10-03 00:26:01 +08:00
Owner

变更说明

按需求对接爆款视频动态定价:

  1. 新增接口封装 src/api/viral-video/index.ts:

    • estimateViralVideoCredits({ video_model, resolution, video_ratio, duration })
    • POST /api/v1/viral-video/estimate-credits
    • 返回 { estimated_credits: number }
  2. TabTask 增加两个字段:

    • estimatedCredits: number | null — 预估值,null=未加载
    • estimatedCreditsError: boolean — 接口失败标记
  3. 调用时机(防抖300ms):

    • STEP2 文案生成成功(uiStep 进入 step2_copy_ready 及之后)首次调用
    • STEP3 切换视频模型/清晰度/比例/时长 → 防抖 300ms 后重拉
    • 未到 STEP2 阶段不显示积分区域、清空状态
    • 使用 abort 序号防止竞态(快速切换时丢弃旧请求结果)
  4. UI 展示:

    • 加载中:… 积分
    • 成功:X 积分(X 为 estimated_credits)
    • 失败:-- 积分(不阻断任何操作,不弹错误 toast)
  5. 402 积分不足处理:

    • 提交生成视频(confirm-copy / generate)时识别 axios 402
    • 展示后端 detail/message,默认「积分不足,请充值」
    • uiStep 回退到 step3_ready 让用户可重试/充值后再提交(不再卡死到 failed)

验证

  • npx tsc --noEmit ✅ 零错误
  • npx prettier --write ✅
  • npx vite build ✅(6.48s,ViralVideoPage 53.12 kB gzip 17.27 kB)

注意

  • 后端 /api/v1/viral-video/estimate-credits 接口若尚未就绪,前端会显示「-- 积分」兜底,不影响其他流程;接口上线后自动生效。
## 变更说明 按需求对接爆款视频动态定价: 1. **新增接口封装** `src/api/viral-video/index.ts`: - `estimateViralVideoCredits({ video_model, resolution, video_ratio, duration })` - POST `/api/v1/viral-video/estimate-credits` - 返回 `{ estimated_credits: number }` 2. **TabTask 增加两个字段**: - `estimatedCredits: number | null` — 预估值,null=未加载 - `estimatedCreditsError: boolean` — 接口失败标记 3. **调用时机(防抖300ms)**: - STEP2 文案生成成功(uiStep 进入 step2_copy_ready 及之后)首次调用 - STEP3 切换视频模型/清晰度/比例/时长 → 防抖 300ms 后重拉 - 未到 STEP2 阶段不显示积分区域、清空状态 - 使用 abort 序号防止竞态(快速切换时丢弃旧请求结果) 4. **UI 展示**: - 加载中:`… 积分` - 成功:`X 积分`(X 为 estimated_credits) - 失败:`-- 积分`(不阻断任何操作,不弹错误 toast) 5. **402 积分不足处理**: - 提交生成视频(confirm-copy / generate)时识别 axios 402 - 展示后端 detail/message,默认「积分不足,请充值」 - uiStep 回退到 step3_ready 让用户可重试/充值后再提交(不再卡死到 failed) ### 验证 - `npx tsc --noEmit` ✅ 零错误 - `npx prettier --write` ✅ - `npx vite build` ✅(6.48s,ViralVideoPage 53.12 kB gzip 17.27 kB) ### 注意 - 后端 `/api/v1/viral-video/estimate-credits` 接口若尚未就绪,前端会显示「-- 积分」兜底,不影响其他流程;接口上线后自动生效。

🚀 预览环境已部署

项目 详情
PR号 #2151
预览链接 https://pr-2151.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2151 | | 预览链接 | [https://pr-2151.preview.xiaoxiajianji.com](https://pr-2151.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 2 commits 2026-10-03 00:14:06 +08:00
- 新增 estimateViralVideoCredits API 封装(POST /api/v1/viral-video/estimate-credits)
- TabTask 新增 estimatedCredits / estimatedCreditsError 两个字段
- STEP2文案完成(step2_copy_ready)后首次拉取;STEP3视频模型/清晰度/比例/时长变化防抖300ms重拉
- 接口失败显示「-- 积分」,加载中显示「… 积分」,不阻断操作
- 提交生成视频时识别 402 Payment Required,message.error 显示后端文案(默认「积分不足,请充值」)
- 未到STEP2阶段不显示积分区域
fix(viral-video): 积分预估显示两位小数(toFixed(2))
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 2m4s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m4s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m16s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m22s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m25s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m37s
AI Code Review / AI Code Review (pull_request) Successful in 6m48s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 7m13s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 11m3s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 9m37s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 53s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 3m39s
87cd9a5300
xiaoxia force-pushed feat/viral-video-dynamic-credits from cfa4d8e68f to 87cd9a5300 2026-10-03 00:14:06 +08:00 Compare
auto-approve-bot approved these changes 2026-10-03 00:16:24 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-10-03 00:16:24 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit 7800ff4c3d into develop 2026-10-03 00:26:01 +08:00
auto-approve-bot deleted branch feat/viral-video-dynamic-credits 2026-10-03 00:26:05 +08:00

🗑️ 预览环境已清理

PR #2151 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #2151 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.