Commit 82d1998
committed
feat: 支持账号等级号池与 API Key 多分组路由
- 新增 OpenAI 账号等级能力
- 为 accounts 增加 account_level 字段,支持 unknown/free/plus/pro
- 为 groups 增加 required_account_level 字段,支持按账号等级限制 OpenAI 分组
- 增加账号等级归一化与合法性校验,创建、编辑、批量更新账号时校验等级与分组要求
- 调度可用账号查询按分组 required_account_level 过滤,避免不同等级账号混用
- 新增 API Key 多分组路由
- 新增 api_key_group_routes 表、Ent schema、迁移、索引和历史 group_id 回填
- API Key 支持配置多个 group route,包含 priority、weight、enabled、cooldown_seconds
- 创建/更新 API Key 时校验路由分组权限、去重、默认值和主 group_id 推导
- API Key 查询、鉴权缓存、按分组统计、分组删除/迁移逻辑均兼容 group_routes
- 鉴权快照升级到 v8,缓存中包含 group route 及分组浅层信息
- 增强网关多路由调度与失败切换
- Anthropic/OpenAI gateway、chat completions、responses、images、websocket 等入口接入 API Key 分组路由游标
- 按当前路由分组重新解析 channel mapping、订阅、账单资格和 sticky session
- 当账号选择失败、上游失败或当前分组不可用时,按路由优先级/权重切换到下一个分组
- 记录路由成功/失败状态,并加入冷却与熔断逻辑,减少异常分组反复命中
- 订阅分组缺少有效订阅时直接失败,不再回退余额计费
- 调整用量计费与分润结算
- UsageBillingCommand 增加 usage occurred 时间口径,优先使用 usage log 创建时间
- 账号共享分润快照同时支持 owner_share_ratio 与 invite_share_ratio
- 邀请收益按 usage 发生时间判断邀请关系有效期,避免按结算时间误判
- 分润明细增加邀请人、邀请比例、邀请收益、平台比例等字段
- 移除旧充值返利 applyAffiliateRebateForOrder 空实现及相关占位逻辑
- 增强邀请收益与后台管理
- 新增管理员补绑/更换邀请人接口,支持选择是否重置邀请收益有效期
- 邀请关系统计按绑定时间排序,并修正自邀请、无效用户等边界校验
- 专属邀请配置列表聚焦自定义邀请码,弱化旧充值返利比例配置
- 前端邀请页文案从“充值返利”调整为“共享号池消费邀请收益”
- 增加账号容量池看板
- 后端复用账号额度汇总 builder,支持用户自己的容量池与平台共享容量池
- 用户频道状态页新增“我的账号容量池”和“平台共享容量池”展示
- 将 AccountQuotaDashboard 组件从 admin 目录迁移为 account 通用组件
- 更新前端 API、类型和页面交互
- 前端类型补充 account_level、required_account_level、group_routes、邀请收益结算字段
- API Key 页面新增多分组路由开关、路由列表、优先级、权重、冷却和启用状态配置
- 分组管理页支持设置 OpenAI required_account_level,并在列表中展示等级标签
- 账号创建/编辑弹窗支持选择 OpenAI 账号等级
- 收益分成策略面板支持邀请分成比例,并校验 owner + invite 不超过 100%
- 结算明细展示邀请人、邀请收益、邀请比例和平台比例
- 自定义菜单项支持 open_in_new_window 配置
- 补充与调整测试覆盖
- 更新 API Key、Group、Bulk Update、账号仓储、分组权限契约等测试
- 新增 route subscription 相关单元测试
- 调整 fixtures 与集成测试以覆盖账号等级、分组路由和新结算口径1 parent 0e642d9 commit 82d1998
107 files changed
Lines changed: 10518 additions & 1719 deletions
File tree
- backend
- ent
- account
- apikeygrouproute
- apikey
- group
- hook
- intercept
- migrate
- predicate
- runtime
- schema
- internal
- domain
- handler
- admin
- dto
- repository
- server/routes
- service
- migrations
- frontend/src
- api
- admin
- components
- account
- admin/revenue
- layout
- i18n/locales
- types
- views
- admin
- user
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments