diff --git a/internal/service/package/usage_service.go b/internal/service/package/usage_service.go index 323d7a2..a434ca3 100644 --- a/internal/service/package/usage_service.go +++ b/internal/service/package/usage_service.go @@ -470,9 +470,14 @@ func (s *UsageService) recordOverflowToDepletedPackage(ctx context.Context, tx * return nil } + // 优先选主套餐(master_usage_id IS NULL),主套餐不存在时再退而求其次取加油包 var pkg model.PackageUsage - if err := query.Order("id DESC").First(&pkg).Error; err != nil { - // 找不到 Depleted 套餐,静默忽略 + err := query.Where("master_usage_id IS NULL").Order("id DESC").First(&pkg).Error + if err == gorm.ErrRecordNotFound { + err = query.Order("id DESC").First(&pkg).Error + } + if err != nil { + // 找不到任何 Depleted 套餐,静默忽略 return nil }