mrlitong
|
cbc3a83f11
|
refactor: 统一账户过期时间字段映射和检查逻辑
主要改进:
1. 创建 mapExpiryField() 工具函数统一处理前后端字段映射(expiresAt -> subscriptionExpiresAt)
2. 统一 subscriptionExpiresAt 初始值为 null(替代空字符串)
3. 规范过期检查方法名为 isSubscriptionExpired(),返回 true 表示已过期
4. 优化过期检查条件判断,只检查 null 而非空字符串
5. 补充 OpenAI-Responses 和调度器中缺失的过期检查逻辑
6. 添加代码评审文档记录未修复问题
影响范围:
- 所有 9 种账户服务的过期字段处理
- admin.js 中所有账户更新路由
- 统一调度器的过期账户过滤逻辑
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-14 08:04:05 +00:00 |
|
litongtongxue
|
1e7465e533
|
feat: 为所有账户服务添加订阅过期检查功能
完成账户订阅到期时间功能的核心调度逻辑实现。
## 实现范围
✅ 已添加订阅过期检查的服务(5个):
- Gemini 服务:添加 isSubscriptionExpired() 函数及调度过滤
- OpenAI 服务:添加 isSubscriptionExpired() 函数及调度过滤
- Droid 服务:添加 _isSubscriptionExpired() 方法及调度过滤
- Bedrock 服务:添加 _isSubscriptionExpired() 方法及调度过滤
- Azure OpenAI 服务:添加 isSubscriptionExpired() 函数及调度过滤
## 核心功能
- 账户调度时自动检查 subscriptionExpiresAt 字段
- 过期账户将不再被系统调度使用
- 未设置过期时间的账户视为永不过期(向后兼容)
- 使用 <= 比较判断过期(精确到过期时刻)
- 跳过过期账户时记录 debug 日志便于排查
## 技术实现
- 统一的实现模式:过期检查函数 + 账户选择逻辑集成
- 不影响现有功能,完全向后兼容
- 业务字段 subscriptionExpiresAt 与技术字段 expiresAt(OAuth token过期)独立管理
## 相关文档
参考 account_expire_bugfix.md 了解问题背景和实现细节
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-14 02:42:03 +00:00 |
|
shaw
|
a67c34bee1
|
fix: 修复claude SSE捕获usage问题
|
2025-10-12 23:05:48 +08:00 |
|
shaw
|
6f6c274877
|
fix: 继续修复PR-541遗留的系列bug
|
2025-10-12 22:13:38 +08:00 |
|
shaw
|
f56d1edce0
|
feat: openai账号401自动停止调度
|
2025-09-24 11:35:48 +08:00 |
|
shaw
|
08946c67ea
|
feat: 新增 OpenAI-Responses 账户管理功能和独立自动停止标记机制
## 功能新增
- 实现 OpenAI-Responses 账户服务(openaiResponsesAccountService.js)
- 支持使用账户内置 API Key 进行请求转发
- 实现每日额度管理和重置机制
- 支持代理配置和优先级设置
- 实现 OpenAI-Responses 中继服务(openaiResponsesRelayService.js)
- 处理请求转发和响应流处理
- 自动记录使用统计信息
- 支持流式和非流式响应
- 新增管理界面的 OpenAI-Responses 账户管理功能
- 完整的 CRUD 操作支持
- 实时额度监控和状态管理
- 支持手动重置限流和每日额度
## 架构改进
- 引入独立的自动停止标记机制,区分不同原因的自动停止
- rateLimitAutoStopped: 限流自动停止
- fiveHourAutoStopped: 5小时限制自动停止
- tempErrorAutoStopped: 临时错误自动停止
- quotaAutoStopped: 额度耗尽自动停止
- 修复手动修改调度状态时自动恢复的问题
- 统一清理逻辑,防止状态冲突
## 其他优化
- getAccountUsageStats 支持不同账户类型参数
- 统一调度器支持 OpenAI-Responses 账户类型
- WebHook 通知增强,支持新账户类型的事件
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-10 15:41:52 +08:00 |
|