feat(meituan-cps): 经纬度→城市离线反查 + rec/销量最高按城市过滤 #116

Merged
marco merged 2 commits from feat/meituan-cps-city-geo into main 2026-07-05 09:31:55 +08:00

2 Commits

Author SHA1 Message Date
guke b2cdbcffff chore(scripts): 新增 mock 比价记录灌库脚本(端上走查用)
给指定用户灌一批真实感外卖比价记录,填充首页「上次比价」横幅 / 比价记录页 / 省钱战绩卡。
trace_id 固定幂等,重跑覆盖同号;第 1 条落在 4 分钟新鲜窗口,其余铺近 7 天。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 16:03:54 +08:00
guke dc63632e77 feat(meituan-cps): 经纬度→城市离线反查 + rec/销量最高按城市过滤
- app/utils/geo.py: reverse_geocoder 单例(mode=1 单进程 KDTree),经纬度→最近聚居点
- app/utils/meituan_city.py: 坐标→美团 city_id(省份/城市名桥接 + 多级兜底 + lru_cache 量化)
- feed(rec) / top-sales: 按解析出的 city_id 过滤离线库;城市解析不出 / 老客户端不带坐标 → degraded
- top-sales 与 rec 一致置空库内距离(相对城市默认点,对用户无意义)
- main.py 启动预热 KDTree;pyproject 加 reverse_geocoder 依赖 + 分发 city_dict.txt
- 新增 geo / meituan_city 测试(56 例);scripts/load_meituan_coupon_tsv.py 灌样本到本地 SQLite
- .gitignore 忽略样本 TSV 与 .claude 本地设置

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 16:00:06 +08:00