Fix: Claude Console 账户的限流开关

This commit is contained in:
wt
2025-08-13 11:24:20 +08:00
parent 171d35f33e
commit f9e8157e07
3 changed files with 11 additions and 7 deletions

View File

@@ -1548,7 +1548,7 @@ router.post('/claude-console-accounts', authenticateAdmin, async (req, res) => {
priority: priority || 50,
supportedModels: supportedModels || [],
userAgent,
rateLimitDuration: rateLimitDuration || 60,
rateLimitDuration: (rateLimitDuration !== undefined && rateLimitDuration !== null) ? rateLimitDuration : 60,
proxy,
accountType: accountType || 'shared'
})
@@ -4628,7 +4628,7 @@ router.post('/openai-accounts', authenticateAdmin, async (req, res) => {
description: description || '',
accountType: accountType || 'shared',
priority: priority || 50,
rateLimitDuration: rateLimitDuration || 60,
rateLimitDuration: (rateLimitDuration !== undefined && rateLimitDuration !== null) ? rateLimitDuration : 60,
openaiOauth: openaiOauth || {},
accountInfo: accountInfo || {},
proxy: proxy?.enabled

View File

@@ -123,7 +123,7 @@ class ClaudeConsoleAccountService {
priority: parseInt(accountData.priority) || 50,
supportedModels: JSON.parse(accountData.supportedModels || '[]'),
userAgent: accountData.userAgent,
rateLimitDuration: parseInt(accountData.rateLimitDuration) || 60,
rateLimitDuration: (Number.isNaN(parseInt(accountData.rateLimitDuration)) ? 60 : parseInt(accountData.rateLimitDuration)),
isActive: accountData.isActive === 'true',
proxy: accountData.proxy ? JSON.parse(accountData.proxy) : null,
accountType: accountData.accountType || 'shared',
@@ -172,7 +172,10 @@ class ClaudeConsoleAccountService {
accountData.supportedModels = parsedModels
accountData.priority = parseInt(accountData.priority) || 50
accountData.rateLimitDuration = parseInt(accountData.rateLimitDuration) || 60
{
const _parsedDuration = parseInt(accountData.rateLimitDuration)
accountData.rateLimitDuration = Number.isNaN(_parsedDuration) ? 60 : _parsedDuration
}
accountData.isActive = accountData.isActive === 'true'
accountData.schedulable = accountData.schedulable !== 'false' // 默认为true
@@ -370,7 +373,7 @@ class ClaudeConsoleAccountService {
const minutesSinceRateLimit = (now - rateLimitedAt) / (1000 * 60)
// 使用账户配置的限流时间
const rateLimitDuration = account.rateLimitDuration || 60
const rateLimitDuration = (typeof account.rateLimitDuration === 'number' && !Number.isNaN(account.rateLimitDuration)) ? account.rateLimitDuration : 60
if (minutesSinceRateLimit >= rateLimitDuration) {
await this.removeAccountRateLimit(accountId)
@@ -510,7 +513,8 @@ class ClaudeConsoleAccountService {
const rateLimitedAt = new Date(accountData.rateLimitedAt)
const now = new Date()
const minutesSinceRateLimit = Math.floor((now - rateLimitedAt) / (1000 * 60))
const rateLimitDuration = parseInt(accountData.rateLimitDuration) || 60
const __parsedDuration = parseInt(accountData.rateLimitDuration)
const rateLimitDuration = Number.isNaN(__parsedDuration) ? 60 : __parsedDuration
const minutesRemaining = Math.max(0, rateLimitDuration - minutesSinceRateLimit)
return {

View File

@@ -146,7 +146,7 @@ async function createAccount(accountData) {
accountType: accountData.accountType || 'shared',
groupId: accountData.groupId || null,
priority: accountData.priority || 50,
rateLimitDuration: accountData.rateLimitDuration || 60,
rateLimitDuration: (accountData.rateLimitDuration !== undefined && accountData.rateLimitDuration !== null) ? accountData.rateLimitDuration : 60,
// OAuth相关字段加密存储
idToken: encrypt(oauthData.idToken || ''),
accessToken: encrypt(oauthData.accessToken || ''),