feat(store_mapping): 加京东原料列 + upsert 首写泛化(任意平台首写不丢列)

京东秒送接入: 店铺身份是两个稳定数字 id —— storeId 进 id_jd(同 taobao shopId→id_taobao),
venderId(deeplink 还需、商家维度)单列存 jd_vender_id; 另加 jd_share_url/jd_resolved_url/
jd_deeplink 原料列(与 taobao_*/meituan_* 平行)。迁移 store_mapping_jd_cols 加这 4 列 +
jd_vender_id 索引。

顺手修一个潜在 bug: upsert 的首写(INSERT)原来硬编码只灌 taobao+通用列, 首写的若是美团/
京东腿, 它们的列不在构造器里会被丢。改成按 _MERGE_COLUMNS 逐列 setattr, 任意平台首写都全量
落库(美团也受益)。合并(填空不覆盖)逻辑不变。

验证: 迁移单 head、store_mapping 无新漂移; TestClient 打真 PG —— 京东首写 4 列全落 →
淘宝同 trace 合并填淘宝列、不覆盖京东列。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-13 22:35:39 +08:00
parent 18185a557a
commit fdd3d8cf9b
4 changed files with 53 additions and 20 deletions
+2 -2
View File
@@ -14,8 +14,8 @@ attrs(JSONB)兜底存灵活明细,免得每多记一个字段就迁移 schema。
⚠️ 数据质量:跨平台"同一家店"的连接来自 agent 的 LLM 店铺匹配,匹配错则一行里连错店。
本表是 append-only 原始记录(每比价一行、trace_id 幂等防重试重复),清洗/归一二期再做。
已接通**淘宝**(id_taobao=shopId)**美团**(meituan_poi_id_str,非稳定主键、单列存);
京东暂为 name-only 或空
已接通**淘宝**(id_taobao=shopId)**美团**(meituan_poi_id_str,非稳定主键、单列存)
**京东**(id_jd=storeId + jd_vender_id,均稳定数字主键;3.cn 短链反查)
"""
from __future__ import annotations