pjpjq commited on
Commit
0abeafe
·
1 Parent(s): c8c3d8d

fix(patch): 适配 CLIProxyAPI v6.10.0 移除 Handler.usageStats 字段

Browse files

usage.go 改为直接调用 usage.GetRequestStatistics() 全局单例,
不再依赖 Handler 结构体的 usageStats 字段。

.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ __pycache__/
patches/cliproxy/internal/api/handlers/management/usage.go CHANGED
@@ -28,8 +28,9 @@ const defaultUsageDetailsLimit = 500
28
  func (h *Handler) GetUsageStatistics(c *gin.Context) {
29
  var snapshot usage.StatisticsSnapshot
30
  detailsLimit := parseUsageDetailsLimit(c, defaultUsageDetailsLimit)
31
- if h != nil && h.usageStats != nil {
32
- snapshot = h.usageStats.SnapshotWithOptions(usage.SnapshotOptions{
 
33
  IncludeDetails: detailsLimit != 0,
34
  DetailLimit: detailsLimit,
35
  })
@@ -75,8 +76,9 @@ func parseUsageDetailsLimit(c *gin.Context, defaultLimit int) int {
75
  // ExportUsageStatistics returns a complete usage snapshot for backup/migration.
76
  func (h *Handler) ExportUsageStatistics(c *gin.Context) {
77
  var snapshot usage.StatisticsSnapshot
78
- if h != nil && h.usageStats != nil {
79
- snapshot = h.usageStats.Snapshot()
 
80
  }
81
  c.JSON(http.StatusOK, usageExportPayload{
82
  Version: 1,
@@ -87,7 +89,8 @@ func (h *Handler) ExportUsageStatistics(c *gin.Context) {
87
 
88
  // ImportUsageStatistics merges a previously exported usage snapshot into memory.
89
  func (h *Handler) ImportUsageStatistics(c *gin.Context) {
90
- if h == nil || h.usageStats == nil {
 
91
  c.JSON(http.StatusBadRequest, gin.H{"error": "usage statistics unavailable"})
92
  return
93
  }
@@ -108,8 +111,8 @@ func (h *Handler) ImportUsageStatistics(c *gin.Context) {
108
  return
109
  }
110
 
111
- result := h.usageStats.MergeSnapshot(payload.Usage)
112
- snapshot := h.usageStats.Snapshot()
113
  c.JSON(http.StatusOK, gin.H{
114
  "added": result.Added,
115
  "skipped": result.Skipped,
 
28
  func (h *Handler) GetUsageStatistics(c *gin.Context) {
29
  var snapshot usage.StatisticsSnapshot
30
  detailsLimit := parseUsageDetailsLimit(c, defaultUsageDetailsLimit)
31
+ stats := usage.GetRequestStatistics()
32
+ if stats != nil {
33
+ snapshot = stats.SnapshotWithOptions(usage.SnapshotOptions{
34
  IncludeDetails: detailsLimit != 0,
35
  DetailLimit: detailsLimit,
36
  })
 
76
  // ExportUsageStatistics returns a complete usage snapshot for backup/migration.
77
  func (h *Handler) ExportUsageStatistics(c *gin.Context) {
78
  var snapshot usage.StatisticsSnapshot
79
+ stats := usage.GetRequestStatistics()
80
+ if stats != nil {
81
+ snapshot = stats.Snapshot()
82
  }
83
  c.JSON(http.StatusOK, usageExportPayload{
84
  Version: 1,
 
89
 
90
  // ImportUsageStatistics merges a previously exported usage snapshot into memory.
91
  func (h *Handler) ImportUsageStatistics(c *gin.Context) {
92
+ stats := usage.GetRequestStatistics()
93
+ if stats == nil {
94
  c.JSON(http.StatusBadRequest, gin.H{"error": "usage statistics unavailable"})
95
  return
96
  }
 
111
  return
112
  }
113
 
114
+ result := stats.MergeSnapshot(payload.Usage)
115
+ snapshot := stats.Snapshot()
116
  c.JSON(http.StatusOK, gin.H{
117
  "added": result.Added,
118
  "skipped": result.Skipped,