feat(billing): 按来源域名将 auto 路由到多层价格池(命名嵌套 auto)

- 新增二级 auto(高价池/低价池): 命名的嵌套 auto, 复用现有 auto 跨子分组选渠道/重试/熔断, 对用户隐藏
- 新增域名路由中间件: 仅 auto 生效, 按 X-Forwarded-Host/Host 改写 UsingGroup+TokenGroup(修复重试陷阱)
- 泛化 channel_select / distributor affinity 的 auto 判定(IsAutoTypeGroup + GetAutoSubGroups)
- 新增 option: SecondaryAutoGroups / DomainAutoRouting; 前端分组定价页加可视化配置表
- 价差来自高/低价池各自挂载的渠道定价(子分组 ratio=1.0), 不使用分组系数
- 恢复 docker 本地源码构建配置(Dockerfile workspace 构建 + compose build + postgres 5433)
This commit is contained in:
2026-06-03 03:52:43 +08:00
parent 9a2e60dff2
commit b6db60dbfb
18 changed files with 901 additions and 28 deletions

View File

@@ -117,6 +117,8 @@ func InitOptionMap() {
common.OptionMap["TopupGroupRatio"] = common.TopupGroupRatio2JSONString()
common.OptionMap["Chats"] = setting.Chats2JsonString()
common.OptionMap["AutoGroups"] = setting.AutoGroups2JsonString()
common.OptionMap["SecondaryAutoGroups"] = setting.SecondaryAutoGroups2JsonString()
common.OptionMap["DomainAutoRouting"] = setting.DomainAutoRouting2JsonString()
common.OptionMap["DefaultUseAutoGroup"] = strconv.FormatBool(setting.DefaultUseAutoGroup)
common.OptionMap["PayMethods"] = operation_setting.PayMethods2JsonString()
common.OptionMap["GitHubClientId"] = ""
@@ -386,6 +388,10 @@ func updateOptionMap(key string, value string) (err error) {
err = setting.UpdateChatsByJsonString(value)
case "AutoGroups":
err = setting.UpdateAutoGroupsByJsonString(value)
case "SecondaryAutoGroups":
err = setting.UpdateSecondaryAutoGroupsByJsonString(value)
case "DomainAutoRouting":
err = setting.UpdateDomainAutoRoutingByJsonString(value)
case "CustomCallbackAddress":
operation_setting.CustomCallbackAddress = value
case "EpayId":