PushToZhaoShang/数据修正使用说明.md
2025-12-07 21:04:24 +08:00

3.1 KiB
Raw Blame History

数据修正使用说明

目的

  • 指导如何在不暴露修正过程的前提下,修正某天营业额数据,并确保前端即时一致更新。
  • 所有修正与生成均写入审计表和 app.log,便于稽核与追踪。

前置准备

  • 在项目根目录创建或编辑 .env,设置管理口令:
    • ADMIN_TOKEN=你的口令
  • 后端运行于 http://localhost:5000Docker 或本地均可)。

修正接口

  • URLPUT /api/admin/turnover
  • 鉴权:请求头 X-Admin-Token: <你的口令>(来自 .env
  • Content-Typeapplication/json
  • 请求体:
    • dateYYYY-MM-DD
    • amount:数值(营业额)
    • reason:字符串(修正原因)
    • actor:可选,执行者标识

请求示例

  • curlWindows PowerShell 请使用完整双引号并转义):
curl -X PUT http://localhost:5000/api/admin/turnover ^
  -H "Content-Type: application/json" ^
  -H "X-Admin-Token: <你的口令>" ^
  -d "{\"date\":\"2025-12-06\",\"amount\":3123.45,\"reason\":\"调整入账\"}"
  • PowerShell推荐
$body = @{ date = "2025-12-06"; amount = 3123.45; reason = "调整入账" } | ConvertTo-Json
Invoke-RestMethod -Method Put -Uri "http://localhost:5000/api/admin/turnover" -Headers @{"X-Admin-Token"="<你的口令>"} -ContentType "application/json" -Body $body
  • Postman
    • Method: PUTURL: http://localhost:5000/api/admin/turnover
    • Headers: X-Admin-Token: <你的口令>Content-Type: application/json
    • Body(JSON){"date":"2025-12-06","amount":3123.45,"reason":"调整入账"}

成功结果与前端效果

  • 接口返回:{"ok": true}
  • 后端行为:
    • 写入/更新 daily_revenue 对应日期的记录,并置 is_final=true
    • 写入 audit_log 审计记录
    • 追加一行到 app.log(与历史格式一致)
  • 前端:每 60 秒轮询 GET /api/metricsGET /api/series7,修正后下一次轮询即可显示新值;修正过程不在前端展示。

生成与定版规则(一致性)

  • 每天本地时间 23:00 自动生成并定版当日数据(is_final=true)。
  • 已定版的数据不会被定时任务覆盖;如需变更,请使用修正接口。
  • CSV 导出仅包含已定版数据。

审计与回滚

  • 审计表:audit_log
    • 字段:dateold_amountnew_amountreasonactortype(generate/correct/import_log)created_at
  • 回滚方式:再次调用修正接口,将 amount 改回目标值,并注明 reason(例如:回滚)。

常见问题

  • 401 未授权:检查 .envADMIN_TOKEN 与请求头 X-Admin-Token 是否一致。
  • 前端未更新:等待轮询或手动刷新;确保后端正在运行并能访问 GET /api/metricsGET /api/series7
  • 时间与周次显示不符:系统按本地时区与“周一为周起、周日为周止”的规则计算区间。

相关接口(只读)

  • 指标:GET /api/metrics(含 today:日期与周几;未到 23:00 或未定版则 amount=null
  • 7 日序列:GET /api/series7(今日定版后纳入,否则截止到昨日)
  • 导出:GET /api/export(仅包含已定版数据)