feat(phase2): 模板编辑器子路由全量迁移(38个端点) #641
Reference in New Issue
Block a user
Delete Branch "feat/phase2-editor-subroutes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
Phase 2 Step 6:模板编辑器子路由全量迁移,共新增38个端点,全部复用 EditPlanService,零业务逻辑复制。
第一批(16个端点)
第二批(22个端点)
合计
模板编辑器总端点:45个(核心7 + 第一批16 + 第二批22)
设计原则
新增16个模板编辑器端点: - BGM: GET/PUT /bgm + GET /bgm/presets(3个) - 生成: POST /generate + GET /generation-status + GET /generations(3个,含4个自动兜底+队列限流) - 时间线: GET /timeline(1个) - 转场: GET /transition-presets + PUT /clips/{id}/transition + POST /transitions/batch(3个) - 滤镜: GET /filter-presets + GET/PUT /filter(3个) - 导出: GET /export-presets + GET/PUT /export(3个) 总计: 模板编辑器从7个端点 → 23个端点 全部复用 EditPlanService 业务逻辑,零代码重复🚀 预览环境已部署
feat(phase2): 模板编辑器子路由迁移第一批(BGM/生成/时间线/转场/滤镜/导出)to feat(phase2): 模板编辑器子路由全量迁移(38个端点)代码审查结果 - PR #641
⚠️ 问题(2个需要修改)
apps/api/app/api/routes/templates_editor.py (get_editor_timeline函数):获取时间线数据时使用了硬编码的分页限制
limit=200。limit参数或设置为一个非常大的合理上限(如10000),确保获取所有片段。apps/api/app/api/routes/templates_editor.py (batch_update_editor_transitions函数):批量更新转场时使用了硬编码的分页限制
limit=500。💡 建议(3个可选)
apps/api/app/api/routes/templates_editor.py (batch_update_editor_transitions函数):存在 N+1 性能问题。
plan_svc.update_clip,如果有大量片段,会产生大量的数据库写操作。建议在 Service 层实现真正的批量更新方法(如batch_update_clips),减少数据库交互开销。apps/api/app/api/routes/templates_editor.py (_auto_fallback_auto_material_mode函数):
import random位于函数内部。import语句放在函数内部会降低代码执行效率(每次调用都需导入),且不符合 Python 编码规范(PEP 8)。import random移至文件顶部。apps/api/app/api/routes/templates_editor.py (_auto_fallback_auto_material_mode函数):加载素材库可能存在性能隐患。
asset_repo.find_by_library(video_lib.id)没有分页限制,如果素材库包含成千上万个视频文件,会一次性加载到内存中,仅为了随机选取一个。ORDER BY RANDOM() LIMIT 1),避免全量数据加载。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 14:50:36 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #641 已关闭或合并,对应的预览环境已被清理。