From 1fab9204eb7c46de8329a11646b8478aa73e9b66 Mon Sep 17 00:00:00 2001 From: Forest Date: Sat, 20 Dec 2025 16:12:44 +0800 Subject: [PATCH] =?UTF-8?q?ci(backend):=20=E6=B7=BB=E5=8A=A0=20unused=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/.golangci.yml | 21 ++++++++++++++++++- backend/cmd/server/wire_gen.go | 14 ++++++------- .../internal/handler/admin/account_handler.go | 4 +--- .../handler/admin/dashboard_handler.go | 13 +++++------- .../internal/service/account_usage_service.go | 4 +--- backend/internal/service/admin_service.go | 6 ------ backend/internal/service/gateway_service.go | 3 --- backend/internal/service/user_service.go | 5 +---- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/backend/.golangci.yml b/backend/.golangci.yml index 9e215b43..6dc8faac 100644 --- a/backend/.golangci.yml +++ b/backend/.golangci.yml @@ -549,7 +549,26 @@ linters: # Use 'fmt.Fprintf(x, ...)' instead of 'x.Write(fmt.Sprintf(...))'. # https://staticcheck.dev/docs/checks/#QF1012 - QF1012 + unused: + # Mark all struct fields that have been written to as used. + # Default: true + field-writes-are-uses: false + # Treat IncDec statement (e.g. `i++` or `i--`) as both read and write operation instead of just write. + # Default: false + post-statements-are-reads: true + # Mark all exported fields as used. + # default: true + exported-fields-are-used: false + # Mark all function parameters as used. + # default: true + parameters-are-used: true + # Mark all local variables as used. + # default: true + local-variables-are-used: false + # Mark all identifiers inside generated files as used. + # Default: true + generated-is-used: false formatters: enable: - - gofmt + - gofmt \ No newline at end of file diff --git a/backend/cmd/server/wire_gen.go b/backend/cmd/server/wire_gen.go index f14fea15..4fb085a7 100644 --- a/backend/cmd/server/wire_gen.go +++ b/backend/cmd/server/wire_gen.go @@ -48,7 +48,7 @@ func initializeApplication(buildInfo handler.BuildInfo) (*Application, error) { emailQueueService := service.ProvideEmailQueueService(emailService) authService := service.NewAuthService(userRepository, configConfig, settingService, emailService, turnstileService, emailQueueService) authHandler := handler.NewAuthHandler(authService) - userService := service.NewUserService(userRepository, configConfig) + userService := service.NewUserService(userRepository) userHandler := handler.NewUserHandler(userService) apiKeyRepository := repository.NewApiKeyRepository(db) groupRepository := repository.NewGroupRepository(db) @@ -67,22 +67,22 @@ func initializeApplication(buildInfo handler.BuildInfo) (*Application, error) { redeemService := service.NewRedeemService(redeemCodeRepository, userRepository, subscriptionService, redeemCache, billingCacheService) redeemHandler := handler.NewRedeemHandler(redeemService) subscriptionHandler := handler.NewSubscriptionHandler(subscriptionService) + dashboardHandler := admin.NewDashboardHandler(usageLogRepository) accountRepository := repository.NewAccountRepository(db) proxyRepository := repository.NewProxyRepository(db) proxyExitInfoProber := repository.NewProxyExitInfoProber() - adminService := service.NewAdminService(userRepository, groupRepository, accountRepository, proxyRepository, apiKeyRepository, redeemCodeRepository, usageLogRepository, userSubscriptionRepository, billingCacheService, proxyExitInfoProber) - dashboardHandler := admin.NewDashboardHandler(adminService, usageLogRepository) + adminService := service.NewAdminService(userRepository, groupRepository, accountRepository, proxyRepository, apiKeyRepository, redeemCodeRepository, billingCacheService, proxyExitInfoProber) adminUserHandler := admin.NewUserHandler(adminService) groupHandler := admin.NewGroupHandler(adminService) claudeOAuthClient := repository.NewClaudeOAuthClient() oAuthService := service.NewOAuthService(proxyRepository, claudeOAuthClient) rateLimitService := service.NewRateLimitService(accountRepository, configConfig) claudeUsageFetcher := repository.NewClaudeUsageFetcher() - accountUsageService := service.NewAccountUsageService(accountRepository, usageLogRepository, oAuthService, claudeUsageFetcher) + accountUsageService := service.NewAccountUsageService(accountRepository, usageLogRepository, claudeUsageFetcher) claudeUpstream := repository.NewClaudeUpstream(configConfig) accountTestService := service.NewAccountTestService(accountRepository, oAuthService, claudeUpstream) accountHandler := admin.NewAccountHandler(adminService, oAuthService, rateLimitService, accountUsageService, accountTestService) - oAuthHandler := admin.NewOAuthHandler(oAuthService, adminService) + oAuthHandler := admin.NewOAuthHandler(oAuthService) proxyHandler := admin.NewProxyHandler(adminService) adminRedeemHandler := admin.NewRedeemHandler(adminService) settingHandler := admin.NewSettingHandler(settingService, emailService) @@ -103,16 +103,16 @@ func initializeApplication(buildInfo handler.BuildInfo) (*Application, error) { billingService := service.NewBillingService(configConfig, pricingService) identityCache := repository.NewIdentityCache(client) identityService := service.NewIdentityService(identityCache) - gatewayService := service.NewGatewayService(accountRepository, usageLogRepository, userRepository, userSubscriptionRepository, gatewayCache, configConfig, oAuthService, billingService, rateLimitService, billingCacheService, identityService, claudeUpstream) + gatewayService := service.NewGatewayService(accountRepository, usageLogRepository, userRepository, userSubscriptionRepository, gatewayCache, configConfig, billingService, rateLimitService, billingCacheService, identityService, claudeUpstream) concurrencyCache := repository.NewConcurrencyCache(client) concurrencyService := service.NewConcurrencyService(concurrencyCache) - tokenRefreshService := service.ProvideTokenRefreshService(accountRepository, oAuthService, configConfig) gatewayHandler := handler.NewGatewayHandler(gatewayService, userService, concurrencyService, billingCacheService) handlerSettingHandler := handler.ProvideSettingHandler(settingService, buildInfo) handlers := handler.ProvideHandlers(authHandler, userHandler, apiKeyHandler, usageHandler, redeemHandler, subscriptionHandler, adminHandlers, gatewayHandler, handlerSettingHandler) groupService := service.NewGroupService(groupRepository) accountService := service.NewAccountService(accountRepository, groupRepository) proxyService := service.NewProxyService(proxyRepository) + tokenRefreshService := service.ProvideTokenRefreshService(accountRepository, oAuthService, configConfig) services := &service.Services{ Auth: authService, User: userService, diff --git a/backend/internal/handler/admin/account_handler.go b/backend/internal/handler/admin/account_handler.go index eef19b43..c46d15df 100644 --- a/backend/internal/handler/admin/account_handler.go +++ b/backend/internal/handler/admin/account_handler.go @@ -13,14 +13,12 @@ import ( // OAuthHandler handles OAuth-related operations for accounts type OAuthHandler struct { oauthService *service.OAuthService - adminService service.AdminService } // NewOAuthHandler creates a new OAuth handler -func NewOAuthHandler(oauthService *service.OAuthService, adminService service.AdminService) *OAuthHandler { +func NewOAuthHandler(oauthService *service.OAuthService) *OAuthHandler { return &OAuthHandler{ oauthService: oauthService, - adminService: adminService, } } diff --git a/backend/internal/handler/admin/dashboard_handler.go b/backend/internal/handler/admin/dashboard_handler.go index 1995306a..5ca56231 100644 --- a/backend/internal/handler/admin/dashboard_handler.go +++ b/backend/internal/handler/admin/dashboard_handler.go @@ -5,7 +5,6 @@ import ( "sub2api/internal/pkg/response" "sub2api/internal/pkg/timezone" "sub2api/internal/repository" - "sub2api/internal/service" "time" "github.com/gin-gonic/gin" @@ -13,17 +12,15 @@ import ( // DashboardHandler handles admin dashboard statistics type DashboardHandler struct { - adminService service.AdminService - usageRepo *repository.UsageLogRepository - startTime time.Time // Server start time for uptime calculation + usageRepo *repository.UsageLogRepository + startTime time.Time // Server start time for uptime calculation } // NewDashboardHandler creates a new admin dashboard handler -func NewDashboardHandler(adminService service.AdminService, usageRepo *repository.UsageLogRepository) *DashboardHandler { +func NewDashboardHandler(usageRepo *repository.UsageLogRepository) *DashboardHandler { return &DashboardHandler{ - adminService: adminService, - usageRepo: usageRepo, - startTime: time.Now(), + usageRepo: usageRepo, + startTime: time.Now(), } } diff --git a/backend/internal/service/account_usage_service.go b/backend/internal/service/account_usage_service.go index ecfab6a5..280eb4c2 100644 --- a/backend/internal/service/account_usage_service.go +++ b/backend/internal/service/account_usage_service.go @@ -70,16 +70,14 @@ type ClaudeUsageFetcher interface { type AccountUsageService struct { accountRepo ports.AccountRepository usageLogRepo ports.UsageLogRepository - oauthService *OAuthService usageFetcher ClaudeUsageFetcher } // NewAccountUsageService 创建AccountUsageService实例 -func NewAccountUsageService(accountRepo ports.AccountRepository, usageLogRepo ports.UsageLogRepository, oauthService *OAuthService, usageFetcher ClaudeUsageFetcher) *AccountUsageService { +func NewAccountUsageService(accountRepo ports.AccountRepository, usageLogRepo ports.UsageLogRepository, usageFetcher ClaudeUsageFetcher) *AccountUsageService { return &AccountUsageService{ accountRepo: accountRepo, usageLogRepo: usageLogRepo, - oauthService: oauthService, usageFetcher: usageFetcher, } } diff --git a/backend/internal/service/admin_service.go b/backend/internal/service/admin_service.go index ca501ee9..54477b37 100644 --- a/backend/internal/service/admin_service.go +++ b/backend/internal/service/admin_service.go @@ -193,8 +193,6 @@ type adminServiceImpl struct { proxyRepo ports.ProxyRepository apiKeyRepo ports.ApiKeyRepository redeemCodeRepo ports.RedeemCodeRepository - usageLogRepo ports.UsageLogRepository - userSubRepo ports.UserSubscriptionRepository billingCacheService *BillingCacheService proxyProber ProxyExitInfoProber } @@ -207,8 +205,6 @@ func NewAdminService( proxyRepo ports.ProxyRepository, apiKeyRepo ports.ApiKeyRepository, redeemCodeRepo ports.RedeemCodeRepository, - usageLogRepo ports.UsageLogRepository, - userSubRepo ports.UserSubscriptionRepository, billingCacheService *BillingCacheService, proxyProber ProxyExitInfoProber, ) AdminService { @@ -219,8 +215,6 @@ func NewAdminService( proxyRepo: proxyRepo, apiKeyRepo: apiKeyRepo, redeemCodeRepo: redeemCodeRepo, - usageLogRepo: usageLogRepo, - userSubRepo: userSubRepo, billingCacheService: billingCacheService, proxyProber: proxyProber, } diff --git a/backend/internal/service/gateway_service.go b/backend/internal/service/gateway_service.go index 57b48ee2..826211a1 100644 --- a/backend/internal/service/gateway_service.go +++ b/backend/internal/service/gateway_service.go @@ -84,7 +84,6 @@ type GatewayService struct { userSubRepo ports.UserSubscriptionRepository cache ports.GatewayCache cfg *config.Config - oauthService *OAuthService billingService *BillingService rateLimitService *RateLimitService billingCacheService *BillingCacheService @@ -100,7 +99,6 @@ func NewGatewayService( userSubRepo ports.UserSubscriptionRepository, cache ports.GatewayCache, cfg *config.Config, - oauthService *OAuthService, billingService *BillingService, rateLimitService *RateLimitService, billingCacheService *BillingCacheService, @@ -114,7 +112,6 @@ func NewGatewayService( userSubRepo: userSubRepo, cache: cache, cfg: cfg, - oauthService: oauthService, billingService: billingService, rateLimitService: rateLimitService, billingCacheService: billingCacheService, diff --git a/backend/internal/service/user_service.go b/backend/internal/service/user_service.go index 07bfac8e..e939b12f 100644 --- a/backend/internal/service/user_service.go +++ b/backend/internal/service/user_service.go @@ -4,7 +4,6 @@ import ( "context" "errors" "fmt" - "sub2api/internal/config" "sub2api/internal/model" "sub2api/internal/pkg/pagination" "sub2api/internal/service/ports" @@ -34,14 +33,12 @@ type ChangePasswordRequest struct { // UserService 用户服务 type UserService struct { userRepo ports.UserRepository - cfg *config.Config } // NewUserService 创建用户服务实例 -func NewUserService(userRepo ports.UserRepository, cfg *config.Config) *UserService { +func NewUserService(userRepo ports.UserRepository) *UserService { return &UserService{ userRepo: userRepo, - cfg: cfg, } }