feat(usage):用量记录添加统计信息

This commit is contained in:
chengqian committed 2026-08-19 20:54:52 +08:00
1 parent 330d02f19d
commit 54ccfb9b80
8 files changed
+330 -146

No files matched your search

+1
View File
@@ -83,6 +83,7 @@ type IAdminV1 interface {
AdminDashboardRecentAlerts(ctx context.Context, req *v1.AdminDashboardRecentAlertsReq) (res *v1.AdminDashboardRecentAlertsRes, err error)
AdminDashboardModelHourly(ctx context.Context, req *v1.AdminDashboardModelHourlyReq) (res *v1.AdminDashboardModelHourlyRes, err error)
AdminUsageLogList(ctx context.Context, req *v1.AdminUsageLogListReq) (res *v1.AdminUsageLogListRes, err error)
AdminUsageLogSummary(ctx context.Context, req *v1.AdminUsageLogSummaryReq) (res *v1.AdminUsageLogSummaryRes, err error)
AdminBillingRecordList(ctx context.Context, req *v1.AdminBillingRecordListReq) (res *v1.AdminBillingRecordListRes, err error)
AdminWalletList(ctx context.Context, req *v1.AdminWalletListReq) (res *v1.AdminWalletListRes, err error)
AdminWalletInfo(ctx context.Context, req *v1.AdminWalletInfoReq) (res *v1.AdminWalletInfoRes, err error)
+25 -17
View File
@@ -118,10 +118,8 @@ type AdminDashboardModelHourlyRes struct {
// === 用量日志 ===
type AdminUsageLogListReq struct {
g.Meta `path:"/usage-logs" method:"get" mime:"json" tags:"管理后台-用量" summary:"用量日志列表"`
Page int `json:"page" d:"1" dc:"页码"`
PageSize int `json:"page_size" d:"20" v:"between:1,100" dc:"每页数量"`
// AdminUsageLogFilter 用量日志共用筛选条件(列表 / 统计汇总 / 导出三个接口共用,保证筛选口径一致)
type AdminUsageLogFilter struct {
ID int64 `json:"id" dc:"用量记录ID"`
TenantID int64 `json:"tenant_id" dc:"租户ID"`
UserID int64 `json:"user_id" dc:"用户ID"`
@@ -135,6 +133,13 @@ type AdminUsageLogListReq struct {
EndDate string `json:"end_date" dc:"结束时间(YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss)"`
}
type AdminUsageLogListReq struct {
g.Meta `path:"/usage-logs" method:"get" mime:"json" tags:"管理后台-用量" summary:"用量日志列表"`
Page int `json:"page" d:"1" dc:"页码"`
PageSize int `json:"page_size" d:"20" v:"between:1,100" dc:"每页数量"`
AdminUsageLogFilter `json:",inline"` // 嵌入共用筛选条件
}
type AdminUsageLogItem struct {
Id int64 `json:"id"`
TenantId int64 `json:"tenant_id"`
@@ -203,6 +208,19 @@ type AdminUsageLogListRes struct {
PageSize int `json:"page_size"`
}
// AdminUsageLogSummaryReq 用量日志统计请求(复用筛选条件,不包含分页)
type AdminUsageLogSummaryReq struct {
g.Meta `path:"/usage-logs/summary" method:"get" mime:"json" tags:"管理后台-用量" summary:"用量日志统计汇总"`
AdminUsageLogFilter `json:",inline"` // 嵌入共用筛选条件
}
// AdminUsageLogSummary 用量日志统计汇总
type AdminUsageLogSummaryRes struct {
TotalCost float64 `json:"total_cost" dc:"总费用(USD)"`
TotalOutputTokens int64 `json:"total_output_tokens" dc:"总输出token数"`
CacheReadRatio float64 `json:"cache_read_ratio" dc:"缓存读取占比(%)"`
}
// === 计费记录 ===
type AdminBillingRecordListReq struct {
@@ -391,19 +409,9 @@ type AdminWalletSetWarningThresholdRes struct{}
// AdminUsageLogExportReq 导出用量日志请求
type AdminUsageLogExportReq struct {
g.Meta `path:"/usage-logs/export" method:"get" mime:"json" tags:"管理后台-用量" summary:"导出用量日志"`
Format string `json:"format" in:"query" d:"csv" v:"in:csv,xlsx" dc:"导出格式:csv / xlsx"`
ID int64 `json:"id" in:"query" dc:"用量记录ID"`
TenantID int64 `json:"tenant_id" in:"query" dc:"租户ID"`
UserID int64 `json:"user_id" in:"query" dc:"用户ID"`
Username string `json:"username" in:"query" dc:"用户名(模糊匹配)"`
ApiKeyID int64 `json:"api_key_id" in:"query" dc:"API Key ID"`
ChannelID int64 `json:"channel_id" in:"query" dc:"渠道ID"`
Model string `json:"model" in:"query" dc:"模型名称"`
Status string `json:"status" in:"query" dc:"状态"`
RequestType int `json:"request_type" in:"query" dc:"请求类型: 1=同步, 2=流式, 3=异步, 4=WebSocket"`
StartDate string `json:"start_date" in:"query" dc:"开始时间(YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss)"`
EndDate string `json:"end_date" in:"query" dc:"结束时间(YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss)"`
g.Meta `path:"/usage-logs/export" method:"get" mime:"json" tags:"管理后台-用量" summary:"导出用量日志"`
Format string `json:"format" in:"query" d:"csv" v:"in:csv,xlsx" dc:"导出格式:csv / xlsx"`
AdminUsageLogFilter `json:",inline"` // 嵌入共用筛选条件
}
type AdminUsageLogExportRes struct{}