diff --git a/apps/api/app/services/edit_plan_service.py b/apps/api/app/services/edit_plan_service.py index 41f0afff6..a8f8e192e 100755 --- a/apps/api/app/services/edit_plan_service.py +++ b/apps/api/app/services/edit_plan_service.py @@ -392,12 +392,15 @@ class EditPlanService: db = self._clip_repo.session try: - # 1. 清空现有 clips(不 commit) - deleted_count = db.query(EditPlanClipModel).filter(EditPlanClipModel.plan_id == plan_id).delete() + # 1. 清空现有 clips(逐个删除以触发 ORM 事件,不 commit) + existing_clips = db.query(EditPlanClipModel).filter(EditPlanClipModel.plan_id == plan_id).all() + for existing in existing_clips: + db.delete(existing) + deleted_count = len(existing_clips) # 2. 批量创建新 clips(不 commit) for i, clip_item in enumerate(clips_data): - order = clip_item.get("order") or i + order = clip_item["order"] if "order" in clip_item else i clip = EditPlanClip.create( plan_id=plan_id, clip_type="main",