为比价记录补充是否下单状态 #184
Reference in New Issue
Block a user
Delete Branch "codex/comparison-order-status"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
改动说明
验证
🤖 review-pr 深审结论
🟢 可以合并(置信度 0.9)。逻辑正确、与 C 端既有口径一致,实跑测试 + lint 通过。
已实跑验证(worktree 隔离副本,未污染工作区):
pytest -k "comparison or order_status"→ 4 passed。新增test_comparison_records_show_real_order_status覆盖了列表 + 详情两个端点,并校验了source='compare'(真实下单)与source='demo'(演示)的区分。ruff check改动文件 → 未引入新告警(仓内 13 处 UP017 均为既有问题,行号都在本 PR 改动范围之外)。main(base sha == origin/main head),无需合并、无冲突。写得对的地方:
_attach_comparison_order_status把 C 端单用户的_ordered_shop_names正确泛化到 admin 多用户场景:按(user_id, shop_name)配对匹配,避免了「A 用户在某店下过单,把 B 用户同店的比价也标成已下单」的跨用户误判。.distinct(),遵循_attach_user_info的逐页范式,无 N+1。user_id为空(孤儿行)、store_name为空/空串都正确落到ordered=False。ordered是瞬态属性(非 ORM 列),详情 schemaAdminComparisonDetail继承AdminComparisonListItem自动带上该字段,详情端点已被测试覆盖。一条 FYI(非阻塞,low):
SavingsRecord上报不带trace_id,只能按店名对齐,无法「按单次比价」精确归因,故一致且可接受。仅提示:该列的语义是「该用户在该店有过真实下单」,不是「这一条比价导致了下单」;若产品预期是后者,需上报侧补trace_id才能实现。建议:可直接合并;与前端 admin-web #88 同批发布。