拆镜 AI拆片 API 可重复执行

This commit is contained in:
2026-07-24 14:30:28 +08:00
parent 4685b475af
commit 663c4fa9db
@@ -544,20 +544,20 @@ async def create_segments_by_ai(
if not suggestions:
raise HTTPException(status_code=400, detail="selected_indices 没有匹配到可用 AI 建议")
old_result = await db.execute(
select(ShotReplicateSegment).where(
ShotReplicateSegment.task_set_id == task_set.id,
ShotReplicateSegment.source_mode == ShotSegmentSourceModeEnum.AI_SUGGESTION.value,
ShotReplicateSegment.deleted_at.is_(None),
)
)
old_segments = list(old_result.scalars().all())
if old_segments and not req.replace_existing:
raise HTTPException(status_code=409, detail="已存在 AI 建议拆镜片段,如需重拆请传 replace_existing=true")
if old_segments and req.replace_existing:
now = _now()
for segment in old_segments:
segment.deleted_at = now
# old_result = await db.execute(
# select(ShotReplicateSegment).where(
# ShotReplicateSegment.task_set_id == task_set.id,
# ShotReplicateSegment.source_mode == ShotSegmentSourceModeEnum.AI_SUGGESTION.value,
# ShotReplicateSegment.deleted_at.is_(None),
# )
# )
# old_segments = list(old_result.scalars().all())
# if old_segments and not req.replace_existing:
# raise HTTPException(status_code=409, detail="已存在 AI 建议拆镜片段,如需重拆请传 replace_existing=true")
# if old_segments and req.replace_existing:
# now = _now()
# for segment in old_segments:
# segment.deleted_at = now
created: list[ShotReplicateSegment] = []
next_index = await _next_segment_index(db, task_set.id)
@@ -609,7 +609,7 @@ async def create_segments_by_ai(
detail={
"task_set_id": task_set.id,
"selected_indices": req.selected_indices,
"replace_existing": req.replace_existing,
# "replace_existing": req.replace_existing,
"created_segment_count": len(created),
"segment_ids": [segment.id for segment in created],
},