179303d875
把首页门面数据的「运营可配」部分代码统一加 ops_ 前缀,与运营语义对齐: - 模型 PlatformStatDisplay→OpsStatConfig(表 platform_stat_display→ops_stat_config)、 MarqueeSeed→OpsMarqueeSeed(表 marquee_seed→ops_marquee_seed) - repo platform_stat→ops_stat、marquee→ops_marquee - admin schema/router dashboard_display→ops_stat_config、marquee_seed→ops_marquee_seed(schema 类 Ops*) - 审计 action/target_type 同步成 ops_* - 引用方(models/__init__、admin/main、api/v1/platform)更 import;platform 用户侧门面保留命名 - 迁移 opsrename01 仅改表名(可逆);路由 URL 与 API 文档文件名不变(前端/客户端无感) - 文档:db 文档重命名 + API 文档/索引同步 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
29 lines
1.9 KiB
Markdown
29 lines
1.9 KiB
Markdown
# GET /api/v1/platform/stats — 首页三统计(全平台门面数字)
|
||
|
||
> 所属:Platform 组(前缀 `/api/v1/platform`) | 鉴权:**无**(登录前首页也要展示) | [← 返回 API 索引](./README.md)
|
||
|
||
客户端首页顶部「帮助用户 / 完成比价 / 累计节省」三个平台级数字。每个指标的展示模式由运营后台配(见 [admin-dashboard-display](./admin-dashboard-display.md)),本接口只返回算好的结果值。
|
||
|
||
## 入参
|
||
无。
|
||
|
||
## 出参
|
||
响应 `200`:`PlatformStatsOut`
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| `help_users` | int | 帮助用户(人) |
|
||
| `total_compares` | int | 完成比价(次) |
|
||
| `total_saved_cents` | int | 累计节省(**分**),客户端 ÷100 显示「元」 |
|
||
|
||
## 说明
|
||
三指标各自独立选模式,且**统一「定时刷新」**:客户端看到的展示值只在「更新时间(按更新间隔)」对齐的北京钟点(`anchor + k*间隔`)刷新一次,平时不变。每次刷新按模式算新值:
|
||
- **real**:重新快照查库 + 基数偏移。`help_users`=有过 `status='success'` 比价记录的去重用户数;`total_compares`=成功比价记录数;`total_saved_cents`=成功记录 `saved_amount_cents` 求和(**只计 `0<saved≤300 元` 的条目**,剔除 bug 异常大值);最终展示 = 真实值 + 运营配的 `real_offset`。
|
||
- **manual**:取运营当前手填的固定值(改值到下个更新钟点生效)。
|
||
- **random**:在上次展示值上按方式增长——`mult` ×一个 [1.0,1.5] 随机倍率 / `add` +一个 [下限,上限] 随机绝对增量(跨几个钟点走几次)。
|
||
- **只增不减**:默认门面数字不回退(real/manual 新值低于当前则保持),除非运营开「允许下降」。
|
||
|
||
计算逻辑见 `app/repositories/ops_stat.py`,模型见 `app/models/ops_stat_config.py`(表 [ops_stat_config](../database/ops_stat_config.md))。
|
||
|
||
上线初始播种为 manual + 客户端原写死门面值(12847 / 86532 / 37621.40 元),保证前后展示一致。
|