feat(media): 素材删除 - 安全清理未引用的存储资源

删除素材前检查项目、画布、任务、其他素材、工作流、风格和声音引用;仅清理未复用的本地或 OSS/COS 对象。
This commit is contained in:
MasterChiefCN authored and GitHub committed 2026-08-16 13:11:30 +08:00
1 parent 9f182a2902
commit c7965e7934
8 files changed
+731 -29

No files matched your search

+1 -13
View File
@@ -852,19 +852,7 @@ func (r *Repository) UpsertAsset(asset *model.Asset) error {
}
func (r *Repository) DeleteAsset(userID string, id string) error {
return r.db.Transaction(func(tx *gorm.DB) error {
versionIDs := tx.Model(&model.AssetVersion{}).Select("id").Where("asset_id = ?", id)
if err := tx.Where("asset_version_id IN (?)", versionIDs).Delete(&model.CharacterVoiceBinding{}).Error; err != nil {
return err
}
if err := tx.Where("asset_version_id IN (?)", versionIDs).Delete(&model.AssetRepresentation{}).Error; err != nil {
return err
}
if err := tx.Where("asset_id = ?", id).Delete(&model.AssetVersion{}).Error; err != nil {
return err
}
return tx.Delete(&model.Asset{}, "id = ? AND user_id = ?", id, userID).Error
})
return r.DeleteAssetAndResources(userID, id, nil)
}
func (r *Repository) ReplaceAssets(userID string, assets []model.Asset) error {