From 07a8710d5a530fbf4749147d06f557b2805a2dd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=B8=96=E7=9D=BF?= <2839904623@qq.com> Date: Wed, 17 Jun 2026 14:41:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(compare-record):=20=E9=80=90=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=20status=20=E8=90=BD=E5=BA=93,=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E9=A1=B5=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ComparisonResultIn 增 status / store_closed 两字段(原本 pydantic 静默丢弃)。 客户端上报前把 done.params 的 comparison_results + platform_results.status 合并写入,记录页据此对无价平台显示「未满起送价/门店打烊/店家未入驻/比价失败」, 而非笼统的「店家未入驻」。纯字段透传,best/saved/status 派生逻辑不变(仍按 price 过滤)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- app/schemas/compare_record.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/schemas/compare_record.py b/app/schemas/compare_record.py index ce8a4a0..90663b0 100644 --- a/app/schemas/compare_record.py +++ b/app/schemas/compare_record.py @@ -51,6 +51,13 @@ class ComparisonResultIn(BaseModel): # 跟 coupon_saved 并存, 是更丰富的明细; 空=没抠到 → 前端回退单券路径。 # 必须显式声明: 落库走 model_dump(), pydantic 默认丢未知字段, 不声明这行会被悄悄吞掉。 applied_coupons: list[AppliedCouponIn] = Field(default_factory=list) + # 逐平台状态(客户端上报前把 done.params 的 comparison_results + platform_results.status 合并写入): + # success / below_minimum / store_closed / store_not_found / items_not_found / unsupported / failed。 + # 「比价记录」页据此对无价平台显示对应文案(未满起送价/门店打烊/店家未入驻/比价失败)。 + # 必须显式声明: 落库走 model_dump(), 不声明会被 pydantic 静默丢弃 → 记录页拿不到 status。 + status: str | None = None + # 门店打烊原因(price 为 None 时带): 与 status="store_closed" 等价的更早信号, 一并落库供前端兜底判打烊。 + store_closed: str | None = None class ComparisonRecordIn(BaseModel):