fix(assets): 手动送审如实回报,送不出去返回 503 而非空态

submit_asset_for_review 改为返回 bool(是否真进入审核);submit-review 端点据此:
当审核服务未启用/未配 SDK/火山未回 Id/调用异常导致没真正送出去,且素材非终态时,
返回 503「审核服务暂不可用」而不是空 review_status —— 否则前端会把「没送出去」
误显示成「审核中」,刷新就打回灰盾(待审核)。新增 503/200 两条回归测试。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zyc
2026-06-24 17:11:04 +08:00
co-authored by Claude Opus 4.8
parent d2aa26248d
commit d6cb280018
3 changed files with 38 additions and 6 deletions
+8 -1
View File
@@ -125,8 +125,15 @@ class AssetViewSet(TeamScopedViewSetMixin, ModelViewSet):
asset = self.get_object() # team-scoped + is_deleted 过滤
if asset.category not in Asset.REVIEW_CATEGORIES:
return Response({"detail": "该素材无需审核"}, status=status.HTTP_400_BAD_REQUEST)
submit_asset_for_review(asset)
started = submit_asset_for_review(asset)
asset.refresh_from_db()
# 没真正送出去(审核服务未启用/未配置 SDK/火山未回 Id/调用异常),且素材也不是已终态:
# 如实回报 503,别返回空 review_status —— 否则前端会把「没送出去」误显示成「审核中」,刷新就打回原形。
if not started and asset.review_status not in ("processing", "active", "failed"):
return Response(
{"detail": "审核服务暂不可用,请稍后重试", "review_status": asset.review_status or ""},
status=status.HTTP_503_SERVICE_UNAVAILABLE,
)
return Response({"review_status": asset.review_status, "review_error": asset.review_error or ""})
@action(detail=False, methods=["get"], url_path="video-packs")