da7ce69494
- 新增 POST /api/v1/ad/ecpm-report:激励视频展示后客户端上报本次 eCPM,落 ad_ecpm_record 做内部收益统计(model/repository/schema/alembic 迁移 + 接口文档) - 看广告冷却策略抽到 app/core/ad_cooldown.py 纯函数;ad_reward.today_status 只取数据,换策略只改这一处 - savings.dishes 改 JSON().with_variant(JSONB,"postgresql"):SQLite 无 visit_JSONB 会让 create_all 编译崩,修复后测试套件恢复 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: OuYingJun1024 <1034284404@qq.com> Reviewed-on: #8 Co-authored-by: ouzhou <ouzhou@wonderable.ai> Co-committed-by: ouzhou <ouzhou@wonderable.ai>
2.3 KiB
2.3 KiB
GET /api/v1/compare/records — 比价记录列表(游标分页)
所属:比价记录组(前缀
/api/v1/compare) | 鉴权:Bearer | ← 返回 API 索引
「我的比价记录」列表页数据源。按 id 倒序(最新在前)。
入参(query)
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
limit |
int | ❌ | 20 | 1–100 |
cursor |
int | ❌ | null | 上一页末条 id,首页不传 |
出参
响应 200:{ items: ComparisonRecordOut[], next_cursor: int|null }(分页见 索引#游标分页约定)
ComparisonRecordOut(列表项,不含 raw_payload,减小 payload)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
int | 记录 id(也是游标) |
business_type |
string | food / ecom / coupon |
trace_id |
string | pricebot trace_id |
source_platform_id |
string | null | 源平台代号 |
source_platform_name |
string | null | 源平台中文名 |
source_package |
string | null | 源平台包名 |
source_price_cents |
int | null | 源平台到手价(分) |
best_platform_id |
string | null | 最优平台代号 |
best_platform_name |
string | null | 最优平台中文名 |
best_price_cents |
int | null | 最优价(分) |
saved_amount_cents |
int | null | 省下(分,可 0/负) |
is_source_best |
bool | null | 源平台是否最便宜(= 没省到) |
store_name |
string | null | 店铺名 |
total_dish_count |
int | null | 菜品总数 |
skipped_dish_count |
int | null | 跳过菜品数 |
status |
string | success / failed |
information |
string | null | done 帧文案。成功:"在美团找到同店,到手价 ¥X…";失败:具体原因(如"美团、京东外卖均未找到该商品"),前端在 status=failed 时当原因展示 |
items |
object[] | 下单菜品 {name, qty, specs?} |
comparison_results |
object[] | 逐平台对比(price 单位元,已按 rank 升序) |
skipped_dish_names |
string[] | 被跳过的菜名 |
created_at |
datetime | 时间 |
错误
401未鉴权
说明
只返回当前登录用户自己的记录。需要单条全量(含 raw_payload)走 详情接口。