diff --git a/controller/token.go b/controller/token.go index 4ffc8426..7c26dbf8 100644 --- a/controller/token.go +++ b/controller/token.go @@ -350,7 +350,8 @@ func UpdateToken(c *gin.Context) { return } - if token.Status == model.TokenStatusEnabled { + switch token.Status { + case model.TokenStatusEnabled: if cleanToken.Status == model.TokenStatusExpired && cleanToken.ExpiredTime <= helper.GetTimestamp() && cleanToken.ExpiredTime != -1 && token.ExpiredTime != -1 && token.ExpiredTime < helper.GetTimestamp() { @@ -369,6 +370,14 @@ func UpdateToken(c *gin.Context) { }) return } + case model.TokenStatusExhausted: + if token.RemainQuota > 0 || token.UnlimitedQuota { + token.Status = model.TokenStatusEnabled + } + case model.TokenStatusExpired: + if token.ExpiredTime == -1 || token.ExpiredTime > helper.GetTimestamp() { + token.Status = model.TokenStatusEnabled + } } if statusOnly != "" {