Skip to content

feat(admin): 新增用户 Token 使用排行榜#2924

Open
bwliangc wants to merge 1 commit into
Wei-Shaw:mainfrom
bwliangc:feat/user-token-leaderboard
Open

feat(admin): 新增用户 Token 使用排行榜#2924
bwliangc wants to merge 1 commit into
Wei-Shaw:mainfrom
bwliangc:feat/user-token-leaderboard

Conversation

@bwliangc
Copy link
Copy Markdown

概述

新增管理端 用户 Token 使用排行榜,可按可选时间范围对用户进行 Token 用量 / 请求数 / 消费的排名,并支持筛选。该功能复用已有的 GetUserBreakdown 聚合逻辑,在其基础上扩展了可配置排序和一个额外的计费模式(billing_mode)过滤条件。

改动内容

后端

  • dashboard_handler.goGetUserBreakdown 新增 sort_by 查询参数(actual_cost | tokens | requests | cost | account_cost),通过 parseUserBreakdownSortBy 校验,非法值返回 400
  • 加固 request_type 解析:支持通过 service.ParseUsageRequestType 解析命名值,并用 RequestType.IsValid() 校验数值,而非直接强转。
  • 新增 billing_mode 查询过滤,贯通到 repository 层。
  • usage_log_repo.go:新增 resolveUserBreakdownOrderBy,按排序键生成确定性的 ORDER BY(以 user_id ASC 作为稳定的并列兜底);并应用可选的 billing_mode WHERE 条件。

前端

  • 新增视图 views/admin/UserTokenLeaderboardView.vue 和组件 components/admin/usage/UserTokenLeaderboard.vue,渲染排名表格(排名 / 用户 / Token / 请求 / 消费),支持时间范围、数量和筛选条件。
  • 新增管理端路由 /admin/token-leaderboardrequiresAuth + requiresAdmin)。
  • 在使用记录分组下新增侧边栏入口。
  • api/admin/dashboard.tsUserBreakdownParams 扩展 sort_bybilling_moderequest_type 类型改为UsageRequestType;导出 getUserBreakdown
  • 新增 enzh 国际化文案。

说明

  • 向后兼容:sort_by 默认为 actual_cost,保持原有默认排序不变,已有的 GetUserBreakdown 调用方不受影响。
Snipaste_2026-05-31_16-16-43

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 31, 2026

All contributors have signed the CLA. ✅
Posted by the CLA Assistant Lite bot.

@bwliangc
Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

github-actions Bot added a commit that referenced this pull request May 31, 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.

1 participant