mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-30 00:21:34 +00:00
feat(usage): 用户用量按平台拆分 + UsersView 列设置可配置 + 用量列排序
后端 - BatchUserUsageStats / UserDashboardStats 新增 ByPlatform 字段 复用 ops 路径 COALESCE(g.platform, a.platform) 语义,不冗余 DB 字段 - 抽出 usageLogEffectivePlatformExpr 常量供管理员与用户两路径共用 - GetBatchUsersUsage cacheKey 加 v=2 + 当日日期,修复跨午夜旧缓存兼容新字段 前端 - 新建 PlatformUsageBreakdown:管理员用量列 hover tooltip 展示各平台 today/total - 新建 PlatformCostCell:单平台 today/total 紧凑单元格 - UsersView 列设置新增 Claude/OpenAI/Gemini/Antigravity 四个平台子列,默认隐藏可手动启用 - 普通用户 Dashboard 新增 Row 3 平台拆分卡片,受 isSimple 控制 - 平台之和 < 总值时显式展示"其他"行,避免数字对不齐 - last_active_at 从 FORCED_VISIBLE_COLUMNS 移除,允许用户隐藏并持久化 - 列设置加 schema 版本号 + 迁移机制,老用户升级时新增默认隐藏列自动应用 - UsersView 用量列(汇总 + 4 平台子列)加入前端单页排序:列头单按钮 + 弹出菜单 切换"今日 / 近30天",三态循环 desc → asc → off;菜单底部备注"仅对本页数据排序" - sortedUsers computed 在 server-side-sort 结果之上叠加本地排序,缺失值按 0 处理; usageSort 状态独立 localStorage 持久化,互不干扰后端 sort_by - i18n 新增 admin.users.sortBy / sortCurrentPageOnly Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
committed by
QTom
co-authored by
Claude Opus 4.7
parent
b006e36af9
commit
664e9fdcd4
@@ -266,10 +266,17 @@ export async function getUserSpendingRanking(
|
||||
return data
|
||||
}
|
||||
|
||||
export interface PlatformUsage {
|
||||
platform: string
|
||||
today_actual_cost: number
|
||||
total_actual_cost: number
|
||||
}
|
||||
|
||||
export interface BatchUserUsageStats {
|
||||
user_id: number
|
||||
today_actual_cost: number
|
||||
total_actual_cost: number
|
||||
by_platform?: PlatformUsage[]
|
||||
}
|
||||
|
||||
export interface BatchUsersUsageResponse {
|
||||
|
||||
@@ -15,6 +15,16 @@ import type {
|
||||
|
||||
// ==================== Dashboard Types ====================
|
||||
|
||||
export interface PlatformDashboardStats {
|
||||
platform: string
|
||||
total_requests: number
|
||||
total_tokens: number
|
||||
total_actual_cost: number
|
||||
today_requests: number
|
||||
today_tokens: number
|
||||
today_actual_cost: number
|
||||
}
|
||||
|
||||
export interface UserDashboardStats {
|
||||
total_api_keys: number
|
||||
active_api_keys: number
|
||||
@@ -37,6 +47,7 @@ export interface UserDashboardStats {
|
||||
average_duration_ms: number
|
||||
rpm: number // 近5分钟平均每分钟请求数
|
||||
tpm: number // 近5分钟平均每分钟Token数
|
||||
by_platform?: PlatformDashboardStats[]
|
||||
}
|
||||
|
||||
export interface TrendParams {
|
||||
|
||||
Reference in New Issue
Block a user