|
|
|
|
|
|
|
|
|
|
|
|
|
|
const redis = require('../src/models/redis') |
|
|
const claudeAccountService = require('../src/services/claudeAccountService') |
|
|
const claudeConsoleAccountService = require('../src/services/claudeConsoleAccountService') |
|
|
const accountGroupService = require('../src/services/accountGroupService') |
|
|
|
|
|
async function testApiResponse() { |
|
|
console.log('🔍 测试 API 响应数据...\n') |
|
|
|
|
|
try { |
|
|
|
|
|
await redis.connect() |
|
|
|
|
|
|
|
|
console.log('📋 测试 Claude OAuth 账号服务...') |
|
|
const claudeAccounts = await claudeAccountService.getAllAccounts() |
|
|
console.log(`找到 ${claudeAccounts.length} 个 Claude OAuth 账号`) |
|
|
|
|
|
|
|
|
console.log('\n账号数据结构示例:') |
|
|
claudeAccounts.slice(0, 3).forEach((acc) => { |
|
|
console.log(`\n账号: ${acc.name}`) |
|
|
console.log(` - ID: ${acc.id}`) |
|
|
console.log(` - accountType: ${acc.accountType}`) |
|
|
console.log(` - platform: ${acc.platform}`) |
|
|
console.log(` - status: ${acc.status}`) |
|
|
console.log(` - isActive: ${acc.isActive}`) |
|
|
}) |
|
|
|
|
|
|
|
|
const claudeDedicated = claudeAccounts.filter((a) => a.accountType === 'dedicated') |
|
|
const claudeGroup = claudeAccounts.filter((a) => a.accountType === 'group') |
|
|
|
|
|
console.log('\n统计结果:') |
|
|
console.log(` - 专属账号: ${claudeDedicated.length} 个`) |
|
|
console.log(` - 分组账号: ${claudeGroup.length} 个`) |
|
|
|
|
|
|
|
|
console.log('\n\n📋 测试 Claude Console 账号服务...') |
|
|
const consoleAccounts = await claudeConsoleAccountService.getAllAccounts() |
|
|
console.log(`找到 ${consoleAccounts.length} 个 Claude Console 账号`) |
|
|
|
|
|
|
|
|
console.log('\n账号数据结构示例:') |
|
|
consoleAccounts.slice(0, 3).forEach((acc) => { |
|
|
console.log(`\n账号: ${acc.name}`) |
|
|
console.log(` - ID: ${acc.id}`) |
|
|
console.log(` - accountType: ${acc.accountType}`) |
|
|
console.log(` - platform: ${acc.platform}`) |
|
|
console.log(` - status: ${acc.status}`) |
|
|
console.log(` - isActive: ${acc.isActive}`) |
|
|
}) |
|
|
|
|
|
|
|
|
const consoleDedicated = consoleAccounts.filter((a) => a.accountType === 'dedicated') |
|
|
const consoleGroup = consoleAccounts.filter((a) => a.accountType === 'group') |
|
|
|
|
|
console.log('\n统计结果:') |
|
|
console.log(` - 专属账号: ${consoleDedicated.length} 个`) |
|
|
console.log(` - 分组账号: ${consoleGroup.length} 个`) |
|
|
|
|
|
|
|
|
console.log('\n\n📋 测试账号分组服务...') |
|
|
const groups = await accountGroupService.getAllGroups() |
|
|
console.log(`找到 ${groups.length} 个账号分组`) |
|
|
|
|
|
|
|
|
groups.forEach((group) => { |
|
|
console.log(`\n分组: ${group.name}`) |
|
|
console.log(` - ID: ${group.id}`) |
|
|
console.log(` - platform: ${group.platform}`) |
|
|
console.log(` - memberCount: ${group.memberCount}`) |
|
|
}) |
|
|
|
|
|
|
|
|
console.log('\n\n📊 验证结果:') |
|
|
|
|
|
|
|
|
const claudeWithPlatform = claudeAccounts.filter((a) => a.platform === 'claude') |
|
|
const consoleWithPlatform = consoleAccounts.filter((a) => a.platform === 'claude-console') |
|
|
|
|
|
if (claudeWithPlatform.length === claudeAccounts.length) { |
|
|
console.log('✅ 所有 Claude OAuth 账号都有正确的 platform 字段') |
|
|
} else { |
|
|
console.log( |
|
|
`⚠️ 只有 ${claudeWithPlatform.length}/${claudeAccounts.length} 个 Claude OAuth 账号有正确的 platform 字段` |
|
|
) |
|
|
} |
|
|
|
|
|
if (consoleWithPlatform.length === consoleAccounts.length) { |
|
|
console.log('✅ 所有 Claude Console 账号都有正确的 platform 字段') |
|
|
} else { |
|
|
console.log( |
|
|
`⚠️ 只有 ${consoleWithPlatform.length}/${consoleAccounts.length} 个 Claude Console 账号有正确的 platform 字段` |
|
|
) |
|
|
} |
|
|
|
|
|
|
|
|
const totalDedicated = claudeDedicated.length + consoleDedicated.length |
|
|
const totalGroup = claudeGroup.length + consoleGroup.length |
|
|
const totalGroups = groups.filter((g) => g.platform === 'claude').length |
|
|
|
|
|
console.log('\n📈 总结:') |
|
|
console.log( |
|
|
`- 专属账号总数: ${totalDedicated} 个 (Claude OAuth: ${claudeDedicated.length}, Console: ${consoleDedicated.length})` |
|
|
) |
|
|
console.log( |
|
|
`- 分组账号总数: ${totalGroup} 个 (Claude OAuth: ${claudeGroup.length}, Console: ${consoleGroup.length})` |
|
|
) |
|
|
console.log(`- 账号分组总数: ${totalGroups} 个`) |
|
|
|
|
|
if (totalDedicated + totalGroups > 0) { |
|
|
console.log('\n✅ 前端下拉框应该能够显示:') |
|
|
if (totalGroups > 0) { |
|
|
console.log(' - 调度分组') |
|
|
} |
|
|
if (claudeDedicated.length > 0) { |
|
|
console.log(' - Claude OAuth 专属账号 (仅 dedicated 类型)') |
|
|
} |
|
|
if (consoleDedicated.length > 0) { |
|
|
console.log(' - Claude Console 专属账号 (仅 dedicated 类型)') |
|
|
} |
|
|
} else { |
|
|
console.log('\n⚠️ 没有找到任何专属账号或分组,请检查账号配置') |
|
|
} |
|
|
|
|
|
console.log('\n💡 说明:') |
|
|
console.log('- 专属账号下拉框只显示 accountType="dedicated" 的账号') |
|
|
console.log('- accountType="group" 的账号通过分组调度,不在专属账号中显示') |
|
|
} catch (error) { |
|
|
console.error('❌ 测试失败:', error) |
|
|
console.error(error.stack) |
|
|
} finally { |
|
|
process.exit(0) |
|
|
} |
|
|
} |
|
|
|
|
|
testApiResponse() |
|
|
|