cfeacb4bab
- 新表 platform_stat_display:每个指标可选 real/manual/random 三种 展示模式,含建表 + anchor_minutes 两个 alembic migration - 公开接口 GET /api/v1/platform/stats(无鉴权门面数字,登录前可读) - 运营后台 GET/PATCH /admin/api/dashboard-display 配置展示模式 - 配套 model/repository/schema,注册 router(app/main+admin/main), 导出 model,补 docs(api/database 索引及 3 篇详情) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""首页平台级展示数据 endpoint(全平台门面数字,**不鉴权**——登录前首页也要展示)。
|
|
|
|
路由前缀 `/api/v1/platform`:
|
|
GET /stats 首页三统计(帮助用户 / 完成比价 / 累计节省),按运营后台配的模式算。
|
|
|
|
展示模式(real/manual/random,每指标独立)与计算逻辑见 app/repositories/platform_stat.py。
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from app.api.deps import DbSession
|
|
from app.repositories import platform_stat as crud
|
|
from app.schemas.platform import PlatformStatsOut
|
|
|
|
logger = logging.getLogger("shagua.platform")
|
|
|
|
router = APIRouter(prefix="/api/v1/platform", tags=["platform"])
|
|
|
|
|
|
@router.get("/stats", response_model=PlatformStatsOut, summary="首页三统计(全平台门面数字)")
|
|
def stats(db: DbSession) -> PlatformStatsOut:
|
|
v = crud.get_display_values(db)
|
|
return PlatformStatsOut(
|
|
help_users=v["help_users"],
|
|
total_compares=v["total_compares"],
|
|
total_saved_cents=v["total_saved"],
|
|
)
|