duxingchen
1fea30b03b
feat(audit): 日活使用统计 + 双 CSV 导出(审计/上下线,列可自定义)
【日活统计:GET /audit/daily-usage】
按【北京时间自然日 × 操作人】聚合,单个 GROUP BY 完成(count(*) FILTER),
不用窗口函数。指标:上线/下线时间、操作次数、登录/登出次数。
⚠️ 上线/下线时间取【当天首次/末次活动】,刻意不取登录时间:
Refresh Token 有效期 7 天,用户不必每天重新登录。按登录算会出现
「登录次数 0、上线时间空,但操作次数 35」——报表自相矛盾。
时间一律按 +08:00 分日与渲染,否则早班(00:00~08:00)操作会掉到前一天。
【CSV 导出:两个端点 + 列自定义】
- /audit/logs/export 整体审计导出,筛选维度与列表页完全一致
- /audit/daily-usage/export 上下线导出,每人一行
- 列清单由后端统一维护并经 /audit/options 下发(log_export_columns /
usage_export_columns),前端不硬编码表头,避免两端漂移
- ⚠️ 响应带 UTF-8 BOM:Excel 靠它识别编码,否则中文表头全乱码
- 单次上限 5 万行,超出经 X-Export-Truncated 头告知前端明确提示
(静默截断比报错更危险)
- list_audit_logs 与 export_audit_logs 共用 _log_filters,
保证「看到的」与「导出的」永远是同一批数据
【前端】
- 审计页页头新增「人员统计」「导出 CSV」两个按钮,现有表格与筛选零改动
- 人员统计走抽屉(AuditUsagePanel):日期范围+快捷键、日活表格、
上下线次数彩色标签、北京时间渲染、导出前弹列勾选面板
- ExportColumnsModal 为两处导出共用,默认全选
2026-09-21 12:06:43 +08:00
..
2026-09-21 02:23:19 +00:00
2026-09-21 12:06:43 +08:00
2026-09-15 10:57:29 +08:00
2026-09-21 01:57:20 +00:00
2026-08-04 10:05:59 +08:00
2026-08-05 14:00:13 +08:00
2026-09-01 13:53:24 +08:00
2026-08-05 14:01:08 +08:00