fix: scope transactional locks to primary records

This commit is contained in:
hailin
2026-07-27 20:31:35 +08:00
parent 6a4239e7bb
commit 8296f3c96f
6 changed files with 21 additions and 13 deletions

View File

@@ -671,7 +671,7 @@ def _auto_create_ticket(
# Agent/Celery 重试可能并发进入;锁定受理记录后再判断是否已经完成建单。
draft = (
TicketDraft.objects.select_for_update()
TicketDraft.objects.select_for_update(of=("self",))
.select_related("created_by", "confirmed_ticket")
.prefetch_related("materials")
.get(id=draft_id)
@@ -944,7 +944,7 @@ def cancel_draft_analysis(
user,
) -> TicketDraft:
draft = (
TicketDraft.objects.select_for_update()
TicketDraft.objects.select_for_update(of=("self",))
.select_related("latest_agent_run", "created_by")
.get(public_id=draft_public_id, created_by=user)
)