From 576bf4639c8ac6e951416544b8f0ab7f0650523c Mon Sep 17 00:00:00 2001 From: IanShaw027 <131567472+IanShaw027@users.noreply.github.com> Date: Fri, 26 Dec 2025 22:15:15 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20mergeMap=20=E5=87=BD=E6=95=B0=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=B8=80=E8=87=B4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根据 Gemini CLI 代码审查建议: ## 修改内容 - 将 Gemini OAuth 同步中的 `mergeJSONB` 调用替换为 `mergeMap` - 删除不再使用的 `mergeJSONB` 函数定义 ## 原因 - 其他平台(OpenAI、Anthropic)的账户同步都使用 `mergeMap` - `mergeJSONB` 是为旧的 `model.JSONB` 类型设计,与重构后的架构不一致 - 统一函数命名提高代码可读性和可维护性 ## 影响范围 - backend/internal/service/crs_sync_service.go (4处替换) - backend/internal/service/account.go (删除 mergeJSONB 函数) ## 验证 ✓ 编译通过 ✓ 功能逻辑无变化(mergeMap 和 mergeJSONB 实现相同) --- backend/internal/service/account.go | 14 -------------- backend/internal/service/crs_sync_service.go | 8 ++++---- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/backend/internal/service/account.go b/backend/internal/service/account.go index a6b20d9d..51b7a4f1 100644 --- a/backend/internal/service/account.go +++ b/backend/internal/service/account.go @@ -326,17 +326,3 @@ func (a *Account) IsOpenAITokenExpired() bool { } return time.Now().Add(60 * time.Second).After(*expiresAt) } - -// mergeJSONB merges source map into target map (for preserving extra fields during account sync) -func mergeJSONB(target, source map[string]any) map[string]any { - if target == nil { - target = make(map[string]any) - } - if source == nil { - return target - } - for k, v := range source { - target[k] = v - } - return target -} diff --git a/backend/internal/service/crs_sync_service.go b/backend/internal/service/crs_sync_service.go index fa7bad21..cd1dbcec 100644 --- a/backend/internal/service/crs_sync_service.go +++ b/backend/internal/service/crs_sync_service.go @@ -801,11 +801,11 @@ func (s *CRSSyncService) SyncFromCRS(ctx context.Context, input SyncFromCRSInput continue } - existing.Extra = mergeJSONB(existing.Extra, extra) + existing.Extra = mergeMap(existing.Extra, extra) existing.Name = defaultName(src.Name, src.ID) existing.Platform = PlatformGemini existing.Type = AccountTypeOAuth - existing.Credentials = mergeJSONB(existing.Credentials, credentials) + existing.Credentials = mergeMap(existing.Credentials, credentials) if proxyID != nil { existing.ProxyID = proxyID } @@ -908,11 +908,11 @@ func (s *CRSSyncService) SyncFromCRS(ctx context.Context, input SyncFromCRSInput continue } - existing.Extra = mergeJSONB(existing.Extra, extra) + existing.Extra = mergeMap(existing.Extra, extra) existing.Name = defaultName(src.Name, src.ID) existing.Platform = PlatformGemini existing.Type = AccountTypeApiKey - existing.Credentials = mergeJSONB(existing.Credentials, credentials) + existing.Credentials = mergeMap(existing.Credentials, credentials) if proxyID != nil { existing.ProxyID = proxyID }