Files
shaguabijia-app-server/docs/api/platform-savings-feed.md
T
OuYingJun1024 c9578f5ba2 feat(platform): 首页轮播 feed 接入真实数据 + 三统计配置增强
轮播 feed(marquee_seed,全新):
- 新增 marquee_seed 表 + admin CRUD/批量生成/预览;真实比价记录(success 且 0<省额≤300元、按 user 去重)优先,种子兜底混播
- 种子为「生成规则」:用户名可空(空则按脱敏格式随机合成、避开同屏撞名),金额改 [min,max] 区间随机,feed 公平随机抽取(不看 sort_order)
- 新增 GET /api/v1/platform/savings-feed(无鉴权);展示时间统一刷新为相对当前的最近时刻

三统计配置(platform_stat_display)增强:
- 自增长新增「绝对增量」方式(random_kind=add,每周期 +[step_min,step_max])
- 真实值模式加基数偏移(real_offset,展示=真实+偏移)
- 只增不减护栏(allow_decrease 默认关,real/manual 不回退防门面缩水)
- 累计节省 real 口径只计 0<单条≤300元防虚高;倍率上限 5.0→1.5;PATCH 支持 apply_now 立即更新

迁移:marquee_seed_table / marquee_seed_range / platform_stat_growth_offset(均可逆,已验证)
文档:API/DB 对应文档同步更新

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

2.1 KiB
Raw Blame History

GET /api/v1/platform/savings-feed — 首页轮播 feed(真实+种子混播)

所属:Platform 组(前缀 /api/v1/platform | 鉴权: | ← 返回 API 索引

客户端首页顶部「用户****xxx 比价后节省 xx 元」滚动条数据源。全平台真实比价记录优先;不足时用运营配的种子(marquee_seed)补齐到 limit 条「混播」,保证轮播不空。

入参

参数 类型 说明
limit int, query 返回条数,默认 8,范围 1~30

出参

响应 200:SavingsFeedOut

字段 类型 说明
items list 轮播条目数组(最多 limit 条)
items[].masked_user string 脱敏用户名,如 用户********a52
items[].saved_amount_cents int 节省(分),客户端 ÷100 显示「x.xx 元」
items[].time string 北京时间 HH:MM:SS

说明

  • 真实条:comparison_recordstatus='success'0 < saved_amount_cents ≤ 300 元 的近期记录(金额超 300 元视为异常 / bug 值剔除,防「节省 999 元」穿帮),user_id 去重(同一用户只取最新一条,避免单人刷屏);用户名按 user_id 哈希脱敏(用户********+3 位)。
  • 种子条:marquee_seed(enabled=true),仅在真实去重后不足 limit 时补齐;从启用种子中公平随机抽取(不再固定取前 N,所有种子都有机会露出)。每条种子:用户名留空则按脱敏格式随机合成并避开同屏撞名,金额在 [min_cents, max_cents] 区间随机取值(固定金额则 min==max)。
  • time 为合成的「最近」时间(从当前北京时间往前递减,首条约 20 秒前,其余每条 2~6 分钟):社会证明轮播保证永远像刚发生,不受旧测试数据 / 低谷期记录影响。真实的用户/金额不变,只换展示时间。
  • 因含随机(抽取 / 金额 / 合成名),每次请求结果都不同——这是轮播想要的鲜活感。
  • 逻辑见 app/repositories/marquee.py;运营管理种子见 admin-marquee-seeds