mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
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>
This commit is contained in:
@@ -132,7 +132,7 @@ async function createAccount(accountData) {
|
||||
|
||||
// ✅ 新增:账户订阅到期时间(业务字段,手动管理)
|
||||
// 注意:Azure OpenAI 使用 API Key 认证,没有 OAuth token,因此没有 expiresAt
|
||||
subscriptionExpiresAt: accountData.subscriptionExpiresAt || '',
|
||||
subscriptionExpiresAt: accountData.subscriptionExpiresAt || null,
|
||||
|
||||
// 状态字段
|
||||
isActive: accountData.isActive !== false ? 'true' : 'false',
|
||||
@@ -317,7 +317,8 @@ async function getAllAccounts() {
|
||||
schedulable: accountData.schedulable !== 'false',
|
||||
|
||||
// ✅ 前端显示订阅过期时间(业务字段)
|
||||
expiresAt: accountData.subscriptionExpiresAt || null
|
||||
expiresAt: accountData.subscriptionExpiresAt || null,
|
||||
platform: 'azure-openai'
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -351,7 +352,7 @@ async function getSharedAccounts() {
|
||||
* @returns {boolean} - true: 已过期, false: 未过期
|
||||
*/
|
||||
function isSubscriptionExpired(account) {
|
||||
if (!account.subscriptionExpiresAt || account.subscriptionExpiresAt === '') {
|
||||
if (!account.subscriptionExpiresAt) {
|
||||
return false // 未设置视为永不过期
|
||||
}
|
||||
const expiryDate = new Date(account.subscriptionExpiresAt)
|
||||
|
||||
Reference in New Issue
Block a user