fix(realname): ActivateByRealname 按 ExpiryBase 选择计时基准 REALNAME-04

- from_purchase:用 PackageUsage.CreatedAt(购买时刻)作为激活时间起点
- from_activation(默认):用实名被触发的当前时刻作为激活时间起点
This commit is contained in:
2026-03-28 10:39:00 +08:00
parent bdac4ab7b2
commit 60b43bb29e

View File

@@ -113,8 +113,14 @@ func (s *ActivationService) ActivateByRealname(ctx context.Context, carrierType
}
}
// 激活套餐
activatedAt := now
// REALNAME-04: 按 ExpiryBase 选择激活计时基准
// from_purchase购买时起算用 PackageUsage 创建时间;否则用实名触发当前时刻
var activatedAt time.Time
if pkg.ExpiryBase == "from_purchase" {
activatedAt = usage.CreatedAt
} else {
activatedAt = now
}
expiresAt := CalculateExpiryTime(pkg.CalendarType, activatedAt, pkg.DurationMonths, pkg.DurationDays)
// 计算下次重置时间