feat: 优化分组用量统计

This commit is contained in:
lyen1688 committed 2026-08-14 22:34:43 +08:00
1 parent fbfdcef818
commit cb7b03795d
26 files changed
+2072 -69

No files matched your search

@@ -0,0 +1,29 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
const { get } = vi.hoisted(() => ({
get: vi.fn(),
}))
vi.mock('@/api/client', () => ({
apiClient: { get },
}))
import { getUsageSummary } from '@/api/admin/groups'
describe('admin group usage summary API', () => {
beforeEach(() => {
get.mockReset()
get.mockResolvedValue({ data: [] })
})
it('does not send browser timezone parameters', async () => {
const summary = [
{ group_id: 1, today_cost: 1.25, yesterday_cost: 2.5, total_cost: 9.75 },
]
get.mockResolvedValue({ data: summary })
await expect(getUsageSummary()).resolves.toEqual(summary)
expect(get).toHaveBeenCalledWith('/admin/groups/usage-summary')
})
})
+6 -9
View File
@@ -446,18 +446,15 @@ export async function clearGroupRPMOverrides(id: number): Promise<{ message: str
}
/**
* Get usage summary (today + cumulative cost) for all groups
* @param timezone - IANA timezone string (e.g. "Asia/Shanghai")
* Get usage summary (today + yesterday + cumulative cost) for all groups
* @returns Array of group usage summaries
*/
export async function getUsageSummary(
timezone?: string
): Promise<{ group_id: number; today_cost: number; total_cost: number }[]> {
export async function getUsageSummary(): Promise<
{ group_id: number; today_cost: number; yesterday_cost: number; total_cost: number }[]
> {
const { data } = await apiClient.get<
{ group_id: number; today_cost: number; total_cost: number }[]
>('/admin/groups/usage-summary', {
params: timezone ? { timezone } : undefined
})
{ group_id: number; today_cost: number; yesterday_cost: number; total_cost: number }[]
>('/admin/groups/usage-summary')
return data
}