feat: implement resolveCreditsOveragesModelKey function to stabilize model key resolution for credit overages

This commit is contained in:
SilentFlower
2026-03-15 23:18:35 +08:00
committed by erio
parent d3a9f5bb88
commit 17e4033340
12 changed files with 866 additions and 14 deletions

View File

@@ -1516,6 +1516,7 @@ func (s *adminServiceImpl) UpdateAccount(ctx context.Context, id int64, input *U
if err != nil {
return nil, err
}
wasOveragesEnabled := account.IsOveragesEnabled()
if input.Name != "" {
account.Name = input.Name
@@ -1529,7 +1530,7 @@ func (s *adminServiceImpl) UpdateAccount(ctx context.Context, id int64, input *U
if len(input.Credentials) > 0 {
account.Credentials = input.Credentials
}
if len(input.Extra) > 0 {
if input.Extra != nil {
// 保留配额用量字段,防止编辑账号时意外重置
for _, key := range []string{"quota_used", "quota_daily_used", "quota_daily_start", "quota_weekly_used", "quota_weekly_start"} {
if v, ok := account.Extra[key]; ok {
@@ -1619,6 +1620,17 @@ func (s *adminServiceImpl) UpdateAccount(ctx context.Context, id int64, input *U
if err := s.accountRepo.Update(ctx, account); err != nil {
return nil, err
}
if account.Platform == PlatformAntigravity {
if !account.IsOveragesEnabled() && wasOveragesEnabled {
clearCreditsExhausted(account.ID)
if err := clearAntigravityCreditsOveragesState(ctx, s.accountRepo, account.ID); err != nil {
return nil, err
}
}
if account.IsOveragesEnabled() && !wasOveragesEnabled {
clearCreditsExhausted(account.ID)
}
}
// 绑定分组
if input.GroupIDs != nil {