3.1 KiB
3.1 KiB
数据修正使用说明
目的
- 指导如何在不暴露修正过程的前提下,修正某天营业额数据,并确保前端即时一致更新。
- 所有修正与生成均写入审计表和
app.log,便于稽核与追踪。
前置准备
- 在项目根目录创建或编辑
.env,设置管理口令:ADMIN_TOKEN=你的口令
- 后端运行于
http://localhost:5000(Docker 或本地均可)。
修正接口
- URL:
PUT /api/admin/turnover - 鉴权:请求头
X-Admin-Token: <你的口令>(来自.env) - Content-Type:
application/json - 请求体:
date:YYYY-MM-DDamount:数值(营业额)reason:字符串(修正原因)actor:可选,执行者标识
请求示例
- curl(Windows 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: PUT;URL:
http://localhost:5000/api/admin/turnover - Headers:
X-Admin-Token: <你的口令>;Content-Type: application/json - Body(JSON):
{"date":"2025-12-06","amount":3123.45,"reason":"调整入账"}
- Method: PUT;URL:
成功结果与前端效果
- 接口返回:
{"ok": true} - 后端行为:
- 写入/更新
daily_revenue对应日期的记录,并置is_final=true - 写入
audit_log审计记录 - 追加一行到
app.log(与历史格式一致)
- 写入/更新
- 前端:每 60 秒轮询
GET /api/metrics与GET /api/series7,修正后下一次轮询即可显示新值;修正过程不在前端展示。
生成与定版规则(一致性)
- 每天本地时间
23:00自动生成并定版当日数据(is_final=true)。 - 已定版的数据不会被定时任务覆盖;如需变更,请使用修正接口。
CSV导出仅包含已定版数据。
审计与回滚
- 审计表:
audit_log- 字段:
date、old_amount、new_amount、reason、actor、type(generate/correct/import_log)、created_at
- 字段:
- 回滚方式:再次调用修正接口,将
amount改回目标值,并注明reason(例如:回滚)。
常见问题
- 401 未授权:检查
.env中ADMIN_TOKEN与请求头X-Admin-Token是否一致。 - 前端未更新:等待轮询或手动刷新;确保后端正在运行并能访问
GET /api/metrics与GET /api/series7。 - 时间与周次显示不符:系统按本地时区与“周一为周起、周日为周止”的规则计算区间。
相关接口(只读)
- 指标:
GET /api/metrics(含today:日期与周几;未到 23:00 或未定版则amount=null) - 7 日序列:
GET /api/series7(今日定版后纳入,否则截止到昨日) - 导出:
GET /api/export(仅包含已定版数据)