Skip to content

fix(admin-usage): 对齐 last24hours 为滚动 24 小时窗口#4153

Closed
zy6p wants to merge 1 commit into
Wei-Shaw:mainfrom
zy6p:fix/rolling-last24hours-window
Closed

fix(admin-usage): 对齐 last24hours 为滚动 24 小时窗口#4153
zy6p wants to merge 1 commit into
Wei-Shaw:mainfrom
zy6p:fix/rolling-last24hours-window

Conversation

@zy6p

@zy6p zy6p commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

说明

  • 修复 admin/user 的 usage 与 dashboard 中「最近 24 小时」时间窗口不准确的问题
  • 原先前端用日历日期 start_date/end_date 近似 24 小时,实际会变成「今天 + 昨天」两天整段,而不是滚动的最近 24 小时
  • 统一改为请求 period=last24hours,由后端按用户时区计算真实的滚动窗口 [now-24h, now]
  • 响应补充 start_time / end_time / period 元数据,避免仅按日期展示时丢失时间精度
  • 补充后端与前端回归测试

背景

旧 PR #1716 长期未合并且与最新 main 产生冲突,已关闭。本 PR 基于最新上游 main 重新实现同一修复。

验证

  • go test ./internal/pkg/timezone ./internal/handler ./internal/handler/admin
  • pnpm exec vitest run src/views/user/__tests__/DashboardView.spec.ts src/views/user/__tests__/UsageView.spec.ts src/views/admin/__tests__/DashboardView.spec.ts src/views/admin/__tests__/UsageView.spec.ts

修复 admin/user 的 usage 与 dashboard 将「最近 24 小时」按日历日期
start_date/end_date 近似的问题。统一改用 period=last24hours,由后端
计算真实的滚动 [now-24h, now] 窗口,并补充前后端回归测试。
@zy6p

zy6p commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@Wei-Shaw

Copy link
Copy Markdown
Owner

1、滚动窗口把秒级 startTime 灌入 7 个 snapshotCache map 作 key,该缓存Set 无淘汰、过期仅在同 key 复读时删除 → admin 默认视图每次请求都泄漏一条 KB 级 entry 且缓存零命中;
2、UsageView onMounted 的 !period 守卫会清空深链/仪表盘跳转传入的 start/end_date,强制回落last24hours。另有 parseUserTimeRange 死代码。

@zy6p zy6p closed this Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants