修复已用完套餐展示
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m43s

This commit is contained in:
2026-09-08 17:19:30 +08:00
parent a48ff5d782
commit ff25586dc9
7 changed files with 95 additions and 10 deletions

View File

@@ -58,13 +58,12 @@ func (s *PackageUsageStore) Update(ctx context.Context, usage *model.PackageUsag
return s.db.WithContext(ctx).Save(usage).Error
}
// GetActiveMainPackage 查询载体的生效中主套餐
// carrierType: "iot_card" 或 "device"
// carrierID: iot_card_id 或 device_id
func (s *PackageUsageStore) GetActiveMainPackage(ctx context.Context, carrierType string, carrierID uint) (*model.PackageUsage, error) {
// GetCurrentMainPackage 查询载体当前可展示的主套餐
// 当前套餐包含生效中和已用完状态;carrierType "iot_card" 或 "device"
func (s *PackageUsageStore) GetCurrentMainPackage(ctx context.Context, carrierType string, carrierID uint) (*model.PackageUsage, error) {
var usage model.PackageUsage
query := s.db.WithContext(ctx).
Where("status = ?", constants.PackageUsageStatusActive).
Where("status IN (?, ?)", constants.PackageUsageStatusActive, constants.PackageUsageStatusDepleted).
Where("master_usage_id IS NULL"). // 主套餐的 master_usage_id 为 NULL
Order("priority ASC, activated_at ASC")