fix: 改有效期到过去时不自动恢复轮询
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m34s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m34s
把套餐有效期改到过去时,到期扫描前套餐仍为生效中,原逻辑会误恢复轮询;改为只认未到期的生效中主套餐。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1499,7 +1499,7 @@ func (s *Service) SetPollingRestorer(restorer PollingRestorer, evaluator AssetRe
|
||||
s.pollingRestorer, s.resumeEvaluator, s.logger = restorer, evaluator, logger
|
||||
}
|
||||
|
||||
// restorePollingAfterExpiryChange 改有效期保存后,资产有生效中主套餐时恢复关闭轮询的卡或设备(来源"改有效期"),再按规则评估复机。
|
||||
// restorePollingAfterExpiryChange 改有效期保存后,资产有未到期的生效中主套餐时恢复(把有效期改到过去不恢复)关闭轮询的卡或设备(来源"改有效期"),再按规则评估复机。
|
||||
func (s *Service) restorePollingAfterExpiryChange(ctx context.Context, assetType string, assetID uint) {
|
||||
if s.pollingRestorer == nil || assetID == 0 {
|
||||
return
|
||||
@@ -1514,7 +1514,7 @@ func (s *Service) restorePollingAfterExpiryChange(ctx context.Context, assetType
|
||||
}
|
||||
var active int64
|
||||
if err := s.db.WithContext(ctx).Model(&model.PackageUsage{}).
|
||||
Where(column+" = ? AND status = ? AND master_usage_id IS NULL", assetID, constants.PackageUsageStatusActive).
|
||||
Where(column+" = ? AND status = ? AND master_usage_id IS NULL AND (expires_at IS NULL OR expires_at > ?)", assetID, constants.PackageUsageStatusActive, time.Now()).
|
||||
Count(&active).Error; err != nil || active == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user