MCPcopy Create free account
hub / github.com/0xUnixIO/pulse / EffectiveStatusAt

Method EffectiveStatusAt

internal/users/store.go:195–213  ·  view source on GitHub ↗

EffectiveStatusAt 使用给定时间计算用户的实际运行时状态(不写库,仅计算)。 在同一同步周期内传入相同的 now 可保证结果确定。

(now time.Time)

Source from the content-addressed store, hash-verified

193// EffectiveStatusAt 使用给定时间计算用户的实际运行时状态(不写库,仅计算)。
194// 在同一同步周期内传入相同的 now 可保证结果确定。
195func (u User) EffectiveStatusAt(now time.Time) string {
196 if u.Status == StatusDisabled {
197 return u.Status
198 }
199 if u.Status == StatusOnHold {
200 // OnHoldExpireAt 到期则自动视为 active(实际状态更新由 job 负责)
201 if u.OnHoldExpireAt != nil && !u.OnHoldExpireAt.IsZero() && now.After(*u.OnHoldExpireAt) {
202 return StatusActive
203 }
204 return u.Status
205 }
206 if u.ExpireAt != nil && !u.ExpireAt.IsZero() && now.After(*u.ExpireAt) {
207 return StatusExpired
208 }
209 if u.TrafficLimit > 0 && u.UsedBytes >= u.TrafficLimit {
210 return StatusLimited
211 }
212 return StatusActive
213}
214
215// EffectiveStatus 计算用户的实际运行时状态(便捷方法,使用当前时间)。
216func (u User) EffectiveStatus() string {

Callers 3

EffectiveStatusMethod · 0.95
EffectiveEnabledAtMethod · 0.95
SyncUsageWithFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected