This commit is contained in:
@@ -253,12 +253,6 @@ func (h *PackageActivationHandler) processExpiredPackage(ctx context.Context, pk
|
||||
zap.Error(err))
|
||||
}
|
||||
|
||||
if err := h.updateCarrierSuspendedStatus(ctx, tx, carrierType, carrierID); err != nil {
|
||||
h.logger.Warn("更新载体停用状态失败",
|
||||
zap.String("carrier_type", carrierType),
|
||||
zap.Uint("carrier_id", carrierID),
|
||||
zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -301,84 +295,6 @@ func (h *PackageActivationHandler) invalidateAddons(ctx context.Context, tx *gor
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *PackageActivationHandler) updateCarrierSuspendedStatus(ctx context.Context, tx *gorm.DB, carrierType string, carrierID uint) error {
|
||||
if carrierType == constants.AssetTypeIotCard {
|
||||
return h.updateIotCardSuspendedStatus(ctx, tx, carrierID)
|
||||
}
|
||||
if carrierType == constants.AssetTypeDevice {
|
||||
return h.updateDeviceSuspendedStatus(ctx, tx, carrierID)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *PackageActivationHandler) updateIotCardSuspendedStatus(ctx context.Context, tx *gorm.DB, cardID uint) error {
|
||||
var activeCount int64
|
||||
if err := tx.WithContext(ctx).
|
||||
Model(&model.PackageUsage{}).
|
||||
Where("iot_card_id = ?", cardID).
|
||||
Where("status = ?", constants.PackageUsageStatusActive).
|
||||
Count(&activeCount).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if activeCount > 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
return tx.WithContext(ctx).
|
||||
Model(&model.IotCard{}).
|
||||
Where("id = ?", cardID).
|
||||
Update("status", constants.IotCardStatusSuspended).Error
|
||||
}
|
||||
|
||||
func (h *PackageActivationHandler) updateDeviceSuspendedStatus(ctx context.Context, tx *gorm.DB, deviceID uint) error {
|
||||
var activeCount int64
|
||||
if err := tx.WithContext(ctx).
|
||||
Model(&model.PackageUsage{}).
|
||||
Where("device_id = ?", deviceID).
|
||||
Where("status = ?", constants.PackageUsageStatusActive).
|
||||
Count(&activeCount).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if activeCount > 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
var cardIDs []uint
|
||||
if err := tx.WithContext(ctx).
|
||||
Model(&model.DeviceSimBinding{}).
|
||||
Where("device_id = ?", deviceID).
|
||||
Where("bind_status = ?", constants.BindStatusBound).
|
||||
Pluck("iot_card_id", &cardIDs).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(cardIDs) > 0 {
|
||||
if err := tx.WithContext(ctx).
|
||||
Model(&model.PackageUsage{}).
|
||||
Where("iot_card_id IN ?", cardIDs).
|
||||
Where("status = ?", constants.PackageUsageStatusActive).
|
||||
Count(&activeCount).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if activeCount > 0 {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
if len(cardIDs) > 0 {
|
||||
if err := tx.WithContext(ctx).
|
||||
Model(&model.IotCard{}).
|
||||
Where("id IN ?", cardIDs).
|
||||
Update("status", constants.IotCardStatusSuspended).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// getCarrierInfo 获取载体信息
|
||||
func (h *PackageActivationHandler) getCarrierInfo(pkg *model.PackageUsage) (string, uint) {
|
||||
if pkg.IotCardID > 0 {
|
||||
|
||||
Reference in New Issue
Block a user