mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
- 新增 accountBalanceService 与多 Provider 适配(Claude/Claude Console/OpenAI Responses/通用) - Redis 增加余额查询结果与本地统计缓存读写 - 管理端新增 /admin/accounts/balance 相关接口与汇总接口,并在应用启动时注册 Provider - 后台前端新增余额组件与 Dashboard 余额/配额汇总、低余额/高使用提示 - 补充 accountBalanceService 单元测试
31 lines
870 B
JavaScript
31 lines
870 B
JavaScript
const BaseBalanceProvider = require('./baseBalanceProvider')
|
||
const claudeAccountService = require('../claudeAccountService')
|
||
|
||
class ClaudeBalanceProvider extends BaseBalanceProvider {
|
||
constructor() {
|
||
super('claude')
|
||
}
|
||
|
||
/**
|
||
* Claude(OAuth):优先尝试获取 OAuth usage(用于配额/使用信息),不强行提供余额金额
|
||
*/
|
||
async queryBalance(account) {
|
||
this.logger.debug(`查询 Claude 余额(OAuth usage): ${account?.id}`)
|
||
|
||
// 仅 OAuth 账户可用;失败时降级
|
||
const usageData = await claudeAccountService.fetchOAuthUsage(account.id).catch(() => null)
|
||
if (!usageData) {
|
||
return { balance: null, currency: 'USD', queryMethod: 'local' }
|
||
}
|
||
|
||
return {
|
||
balance: null,
|
||
currency: 'USD',
|
||
queryMethod: 'api',
|
||
rawData: usageData
|
||
}
|
||
}
|
||
}
|
||
|
||
module.exports = ClaudeBalanceProvider
|