From 5af8913954bd9f92f3ed40bb9e5c3279ff7cb4e8 Mon Sep 17 00:00:00 2001 From: mouyong Date: Wed, 20 Aug 2025 21:40:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor(backend):=20=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E8=B4=A6=E6=88=B7=E5=B9=B3=E5=8F=B0=E6=A0=87=E8=AF=86=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WHAT: 统一 Claude 账户的平台标识,从 claude-oauth 改为 claude WHY: 简化平台标识命名规范,提高前后端数据一致性,为多平台支持奠定基础 HOW: 在账户创建和查询接口中添加 platform 字段支持;更新 claudeAccountService 默认平台标识;保持向后兼容性,旧数据自动使用默认值 --- scripts/test-api-response.js | 2 +- src/routes/admin.js | 2 ++ src/services/claudeAccountService.js | 10 +++++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/test-api-response.js b/scripts/test-api-response.js index 02453708..8131e0f9 100644 --- a/scripts/test-api-response.js +++ b/scripts/test-api-response.js @@ -79,7 +79,7 @@ async function testApiResponse() { console.log('\n\n📊 验证结果:') // 检查 platform 字段 - const claudeWithPlatform = claudeAccounts.filter((a) => a.platform === 'claude-oauth') + const claudeWithPlatform = claudeAccounts.filter((a) => a.platform === 'claude') const consoleWithPlatform = consoleAccounts.filter((a) => a.platform === 'claude-console') if (claudeWithPlatform.length === claudeAccounts.length) { diff --git a/src/routes/admin.js b/src/routes/admin.js index f6e9cf2d..4b29ade0 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -1242,6 +1242,7 @@ router.post('/claude-accounts', authenticateAdmin, async (req, res) => { claudeAiOauth, proxy, accountType, + platform = 'claude', priority, groupId } = req.body @@ -1279,6 +1280,7 @@ router.post('/claude-accounts', authenticateAdmin, async (req, res) => { claudeAiOauth, proxy, accountType: accountType || 'shared', // 默认为共享类型 + platform, priority: priority || 50 // 默认优先级为50 }) diff --git a/src/services/claudeAccountService.js b/src/services/claudeAccountService.js index 6577535d..cc2a8089 100644 --- a/src/services/claudeAccountService.js +++ b/src/services/claudeAccountService.js @@ -55,6 +55,7 @@ class ClaudeAccountService { proxy = null, // { type: 'socks5', host: 'localhost', port: 1080, username: '', password: '' } isActive = true, accountType = 'shared', // 'dedicated' or 'shared' + platform = 'claude', priority = 50, // 调度优先级 (1-100,数字越小优先级越高) schedulable = true, // 是否可被调度 subscriptionInfo = null // 手动设置的订阅信息 @@ -79,7 +80,8 @@ class ClaudeAccountService { scopes: claudeAiOauth.scopes.join(' '), proxy: proxy ? JSON.stringify(proxy) : '', isActive: isActive.toString(), - accountType, // 账号类型:'dedicated' 或 'shared' + accountType, // 账号类型:'dedicated' 或 'shared' 或 'group' + platform, priority: priority.toString(), // 调度优先级 createdAt: new Date().toISOString(), lastUsedAt: '', @@ -108,7 +110,8 @@ class ClaudeAccountService { scopes: '', proxy: proxy ? JSON.stringify(proxy) : '', isActive: isActive.toString(), - accountType, // 账号类型:'dedicated' 或 'shared' + accountType, // 账号类型:'dedicated' 或 'shared' 或 'group' + platform, priority: priority.toString(), // 调度优先级 createdAt: new Date().toISOString(), lastUsedAt: '', @@ -151,6 +154,7 @@ class ClaudeAccountService { isActive, proxy, accountType, + platform, priority, status: accountData.status, createdAt: accountData.createdAt, @@ -444,7 +448,7 @@ class ClaudeAccountService { errorMessage: account.errorMessage, accountType: account.accountType || 'shared', // 兼容旧数据,默认为共享 priority: parseInt(account.priority) || 50, // 兼容旧数据,默认优先级50 - platform: 'claude-oauth', // 添加平台标识,用于前端区分 + platform: account.platform || 'claude', // 添加平台标识,用于前端区分 createdAt: account.createdAt, lastUsedAt: account.lastUsedAt, lastRefreshAt: account.lastRefreshAt,