fix: analysis

This commit is contained in:
2026-03-12 19:05:48 +08:00
parent 470446fa6f
commit 9e609f89a3
2 changed files with 310 additions and 69 deletions

View File

@@ -3,7 +3,7 @@ import logging
from uuid import UUID
import httpx
from sqlalchemy import select
from sqlalchemy import delete, select
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.config import settings
@@ -15,7 +15,14 @@ logger = logging.getLogger(__name__)
async def assess_case(case_id: UUID, db: AsyncSession) -> list[FraudAssessment]:
"""Run rule-based assessment on all non-duplicate transactions and generate reasons."""
"""Run rule-based assessment on all non-duplicate transactions and replace old results."""
# Replace mode: rerun analysis for the same case should overwrite prior assessments
# instead of appending duplicated rows.
await db.execute(
delete(FraudAssessment).where(FraudAssessment.case_id == case_id)
)
await db.flush()
result = await db.execute(
select(TransactionRecord)
.where(TransactionRecord.case_id == case_id)