From 519b0b245a65ee78fd064f96237b8efea32f19a3 Mon Sep 17 00:00:00 2001 From: ianshaw Date: Sat, 3 Jan 2026 06:57:08 -0800 Subject: [PATCH] =?UTF-8?q?fix(lint):=20=E4=BF=AE=E5=A4=8D=20golangci-lint?= =?UTF-8?q?=20=E6=A3=80=E6=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 格式化代码 (gofmt) - 修复 rows.Close() 返回值未检查 (errcheck) - 删除未使用的 usage_clamp.go 文件 (unused) - 删除临时测试目录 --- backend/__tmp_test | 0 .../internal/handler/admin/setting_handler.go | 120 +++++++++--------- .../antigravity/request_transformer_test.go | 8 +- backend/internal/repository/account_repo.go | 2 +- backend/internal/repository/user_repo.go | 2 +- backend/internal/service/gateway_service.go | 14 +- backend/internal/service/usage_clamp.go | 35 ----- 7 files changed, 73 insertions(+), 108 deletions(-) delete mode 100644 backend/__tmp_test delete mode 100644 backend/internal/service/usage_clamp.go diff --git a/backend/__tmp_test b/backend/__tmp_test deleted file mode 100644 index e69de29b..00000000 diff --git a/backend/internal/handler/admin/setting_handler.go b/backend/internal/handler/admin/setting_handler.go index d3716cb4..4b529db5 100644 --- a/backend/internal/handler/admin/setting_handler.go +++ b/backend/internal/handler/admin/setting_handler.go @@ -34,26 +34,26 @@ func (h *SettingHandler) GetSettings(c *gin.Context) { } response.Success(c, dto.SystemSettings{ - RegistrationEnabled: settings.RegistrationEnabled, - EmailVerifyEnabled: settings.EmailVerifyEnabled, - SmtpHost: settings.SmtpHost, - SmtpPort: settings.SmtpPort, - SmtpUsername: settings.SmtpUsername, - SmtpPassword: settings.SmtpPassword, - SmtpFrom: settings.SmtpFrom, - SmtpFromName: settings.SmtpFromName, - SmtpUseTLS: settings.SmtpUseTLS, - TurnstileEnabled: settings.TurnstileEnabled, - TurnstileSiteKey: settings.TurnstileSiteKey, - TurnstileSecretKey: settings.TurnstileSecretKey, - SiteName: settings.SiteName, - SiteLogo: settings.SiteLogo, - SiteSubtitle: settings.SiteSubtitle, - ApiBaseUrl: settings.ApiBaseUrl, - ContactInfo: settings.ContactInfo, - DocUrl: settings.DocUrl, - DefaultConcurrency: settings.DefaultConcurrency, - DefaultBalance: settings.DefaultBalance, + RegistrationEnabled: settings.RegistrationEnabled, + EmailVerifyEnabled: settings.EmailVerifyEnabled, + SmtpHost: settings.SmtpHost, + SmtpPort: settings.SmtpPort, + SmtpUsername: settings.SmtpUsername, + SmtpPassword: settings.SmtpPassword, + SmtpFrom: settings.SmtpFrom, + SmtpFromName: settings.SmtpFromName, + SmtpUseTLS: settings.SmtpUseTLS, + TurnstileEnabled: settings.TurnstileEnabled, + TurnstileSiteKey: settings.TurnstileSiteKey, + TurnstileSecretKey: settings.TurnstileSecretKey, + SiteName: settings.SiteName, + SiteLogo: settings.SiteLogo, + SiteSubtitle: settings.SiteSubtitle, + ApiBaseUrl: settings.ApiBaseUrl, + ContactInfo: settings.ContactInfo, + DocUrl: settings.DocUrl, + DefaultConcurrency: settings.DefaultConcurrency, + DefaultBalance: settings.DefaultBalance, EnableModelFallback: settings.EnableModelFallback, FallbackModelAnthropic: settings.FallbackModelAnthropic, FallbackModelOpenAI: settings.FallbackModelOpenAI, @@ -153,26 +153,26 @@ func (h *SettingHandler) UpdateSettings(c *gin.Context) { } settings := &service.SystemSettings{ - RegistrationEnabled: req.RegistrationEnabled, - EmailVerifyEnabled: req.EmailVerifyEnabled, - SmtpHost: req.SmtpHost, - SmtpPort: req.SmtpPort, - SmtpUsername: req.SmtpUsername, - SmtpPassword: req.SmtpPassword, - SmtpFrom: req.SmtpFrom, - SmtpFromName: req.SmtpFromName, - SmtpUseTLS: req.SmtpUseTLS, - TurnstileEnabled: req.TurnstileEnabled, - TurnstileSiteKey: req.TurnstileSiteKey, - TurnstileSecretKey: req.TurnstileSecretKey, - SiteName: req.SiteName, - SiteLogo: req.SiteLogo, - SiteSubtitle: req.SiteSubtitle, - ApiBaseUrl: req.ApiBaseUrl, - ContactInfo: req.ContactInfo, - DocUrl: req.DocUrl, - DefaultConcurrency: req.DefaultConcurrency, - DefaultBalance: req.DefaultBalance, + RegistrationEnabled: req.RegistrationEnabled, + EmailVerifyEnabled: req.EmailVerifyEnabled, + SmtpHost: req.SmtpHost, + SmtpPort: req.SmtpPort, + SmtpUsername: req.SmtpUsername, + SmtpPassword: req.SmtpPassword, + SmtpFrom: req.SmtpFrom, + SmtpFromName: req.SmtpFromName, + SmtpUseTLS: req.SmtpUseTLS, + TurnstileEnabled: req.TurnstileEnabled, + TurnstileSiteKey: req.TurnstileSiteKey, + TurnstileSecretKey: req.TurnstileSecretKey, + SiteName: req.SiteName, + SiteLogo: req.SiteLogo, + SiteSubtitle: req.SiteSubtitle, + ApiBaseUrl: req.ApiBaseUrl, + ContactInfo: req.ContactInfo, + DocUrl: req.DocUrl, + DefaultConcurrency: req.DefaultConcurrency, + DefaultBalance: req.DefaultBalance, EnableModelFallback: req.EnableModelFallback, FallbackModelAnthropic: req.FallbackModelAnthropic, FallbackModelOpenAI: req.FallbackModelOpenAI, @@ -193,26 +193,26 @@ func (h *SettingHandler) UpdateSettings(c *gin.Context) { } response.Success(c, dto.SystemSettings{ - RegistrationEnabled: updatedSettings.RegistrationEnabled, - EmailVerifyEnabled: updatedSettings.EmailVerifyEnabled, - SmtpHost: updatedSettings.SmtpHost, - SmtpPort: updatedSettings.SmtpPort, - SmtpUsername: updatedSettings.SmtpUsername, - SmtpPassword: updatedSettings.SmtpPassword, - SmtpFrom: updatedSettings.SmtpFrom, - SmtpFromName: updatedSettings.SmtpFromName, - SmtpUseTLS: updatedSettings.SmtpUseTLS, - TurnstileEnabled: updatedSettings.TurnstileEnabled, - TurnstileSiteKey: updatedSettings.TurnstileSiteKey, - TurnstileSecretKey: updatedSettings.TurnstileSecretKey, - SiteName: updatedSettings.SiteName, - SiteLogo: updatedSettings.SiteLogo, - SiteSubtitle: updatedSettings.SiteSubtitle, - ApiBaseUrl: updatedSettings.ApiBaseUrl, - ContactInfo: updatedSettings.ContactInfo, - DocUrl: updatedSettings.DocUrl, - DefaultConcurrency: updatedSettings.DefaultConcurrency, - DefaultBalance: updatedSettings.DefaultBalance, + RegistrationEnabled: updatedSettings.RegistrationEnabled, + EmailVerifyEnabled: updatedSettings.EmailVerifyEnabled, + SmtpHost: updatedSettings.SmtpHost, + SmtpPort: updatedSettings.SmtpPort, + SmtpUsername: updatedSettings.SmtpUsername, + SmtpPassword: updatedSettings.SmtpPassword, + SmtpFrom: updatedSettings.SmtpFrom, + SmtpFromName: updatedSettings.SmtpFromName, + SmtpUseTLS: updatedSettings.SmtpUseTLS, + TurnstileEnabled: updatedSettings.TurnstileEnabled, + TurnstileSiteKey: updatedSettings.TurnstileSiteKey, + TurnstileSecretKey: updatedSettings.TurnstileSecretKey, + SiteName: updatedSettings.SiteName, + SiteLogo: updatedSettings.SiteLogo, + SiteSubtitle: updatedSettings.SiteSubtitle, + ApiBaseUrl: updatedSettings.ApiBaseUrl, + ContactInfo: updatedSettings.ContactInfo, + DocUrl: updatedSettings.DocUrl, + DefaultConcurrency: updatedSettings.DefaultConcurrency, + DefaultBalance: updatedSettings.DefaultBalance, EnableModelFallback: updatedSettings.EnableModelFallback, FallbackModelAnthropic: updatedSettings.FallbackModelAnthropic, FallbackModelOpenAI: updatedSettings.FallbackModelOpenAI, diff --git a/backend/internal/pkg/antigravity/request_transformer_test.go b/backend/internal/pkg/antigravity/request_transformer_test.go index 68b857fe..31615b58 100644 --- a/backend/internal/pkg/antigravity/request_transformer_test.go +++ b/backend/internal/pkg/antigravity/request_transformer_test.go @@ -8,11 +8,11 @@ import ( // TestBuildParts_ThinkingBlockWithoutSignature 测试thinking block无signature时的处理 func TestBuildParts_ThinkingBlockWithoutSignature(t *testing.T) { tests := []struct { - name string - content string + name string + content string allowDummyThought bool - expectedParts int - description string + expectedParts int + description string }{ { name: "Claude model - drop thinking without signature", diff --git a/backend/internal/repository/account_repo.go b/backend/internal/repository/account_repo.go index 43c1902b..37358fe6 100644 --- a/backend/internal/repository/account_repo.go +++ b/backend/internal/repository/account_repo.go @@ -975,7 +975,7 @@ func (r *accountRepository) loadTempUnschedStates(ctx context.Context, accountID if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() for rows.Next() { var id int64 diff --git a/backend/internal/repository/user_repo.go b/backend/internal/repository/user_repo.go index 7a6c9915..0d8c25c6 100644 --- a/backend/internal/repository/user_repo.go +++ b/backend/internal/repository/user_repo.go @@ -301,7 +301,7 @@ func (r *userRepository) filterUsersByAttributes(ctx context.Context, attrs map[ if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() result := make([]int64, 0) for rows.Next() { diff --git a/backend/internal/service/gateway_service.go b/backend/internal/service/gateway_service.go index 6d652fa6..9a8ffd33 100644 --- a/backend/internal/service/gateway_service.go +++ b/backend/internal/service/gateway_service.go @@ -1076,13 +1076,13 @@ func (s *GatewayService) Forward(ctx context.Context, c *gin.Context, account *A } // 处理错误响应(不可重试的错误) - if resp.StatusCode >= 400 { - // 可选:对部分 400 触发 failover(默认关闭以保持语义) - if resp.StatusCode == 400 && s.cfg != nil && s.cfg.Gateway.FailoverOn400 { - respBody, readErr := io.ReadAll(io.LimitReader(resp.Body, 2<<20)) - if readErr != nil { - // ReadAll failed, fall back to normal error handling without consuming the stream - return s.handleErrorResponse(ctx, resp, c, account) + if resp.StatusCode >= 400 { + // 可选:对部分 400 触发 failover(默认关闭以保持语义) + if resp.StatusCode == 400 && s.cfg != nil && s.cfg.Gateway.FailoverOn400 { + respBody, readErr := io.ReadAll(io.LimitReader(resp.Body, 2<<20)) + if readErr != nil { + // ReadAll failed, fall back to normal error handling without consuming the stream + return s.handleErrorResponse(ctx, resp, c, account) } _ = resp.Body.Close() resp.Body = io.NopCloser(bytes.NewReader(respBody)) diff --git a/backend/internal/service/usage_clamp.go b/backend/internal/service/usage_clamp.go deleted file mode 100644 index e81958d8..00000000 --- a/backend/internal/service/usage_clamp.go +++ /dev/null @@ -1,35 +0,0 @@ -package service - -import "time" - -// clampInt 将整数限制在指定范围内 -func clampInt(value, min, max int) int { - if value < min { - return min - } - if value > max { - return max - } - return value -} - -// clampFloat64 将浮点数限制在指定范围内 -func clampFloat64(value, min, max float64) float64 { - if value < min { - return min - } - if value > max { - return max - } - return value -} - -// remainingSecondsUntil 计算到指定时间的剩余秒数,保证非负 -func remainingSecondsUntil(t time.Time) int { - seconds := int(time.Until(t).Seconds()) - if seconds < 0 { - return 0 - } - return seconds -} -