diff --git a/internal/bootstrap/services.go b/internal/bootstrap/services.go index 2b88b83..372d896 100644 --- a/internal/bootstrap/services.go +++ b/internal/bootstrap/services.go @@ -148,7 +148,7 @@ func initServices(s *stores, deps *Dependencies) *services { PollingAlert: pollingSvc.NewAlertService(s.PollingAlertRule, s.PollingAlertHistory, deps.Redis, deps.Logger), PollingCleanup: pollingSvc.NewCleanupService(s.DataCleanupConfig, s.DataCleanupLog, deps.Logger), PollingManualTrigger: pollingSvc.NewManualTriggerService(s.PollingManualTriggerLog, s.IotCard, deps.Redis, deps.Logger), - Asset: assetSvc.New(deps.DB, s.Device, s.IotCard, s.PackageUsage, s.Package, s.DeviceSimBinding, s.Shop, deps.Redis, iotCard), + Asset: assetSvc.New(deps.DB, s.Device, s.IotCard, s.PackageUsage, s.Package, s.PackageSeries, s.DeviceSimBinding, s.Shop, deps.Redis, iotCard), StopResumeService: iotCardSvc.NewStopResumeService(deps.DB, deps.Redis, s.IotCard, s.DeviceSimBinding, deps.GatewayClient, deps.Logger), } } diff --git a/internal/service/asset/service.go b/internal/service/asset/service.go index e0073da..0f3d680 100644 --- a/internal/service/asset/service.go +++ b/internal/service/asset/service.go @@ -31,6 +31,7 @@ type Service struct { iotCardStore *postgres.IotCardStore packageUsageStore *postgres.PackageUsageStore packageStore *postgres.PackageStore + packageSeriesStore *postgres.PackageSeriesStore deviceSimBindingStore *postgres.DeviceSimBindingStore shopStore *postgres.ShopStore redis *redis.Client @@ -44,6 +45,7 @@ func New( iotCardStore *postgres.IotCardStore, packageUsageStore *postgres.PackageUsageStore, packageStore *postgres.PackageStore, + packageSeriesStore *postgres.PackageSeriesStore, deviceSimBindingStore *postgres.DeviceSimBindingStore, shopStore *postgres.ShopStore, redisClient *redis.Client, @@ -55,6 +57,7 @@ func New( iotCardStore: iotCardStore, packageUsageStore: packageUsageStore, packageStore: packageStore, + packageSeriesStore: packageSeriesStore, deviceSimBindingStore: deviceSimBindingStore, shopStore: shopStore, redis: redisClient, @@ -136,6 +139,9 @@ func (s *Service) buildDeviceResolveResponse(ctx context.Context, device *model. // 查 shop 名称 s.fillShopName(ctx, resp) + // 查套餐系列名称 + s.fillSeriesName(ctx, resp) + // 查 Redis 保护期 resp.DeviceProtectStatus = s.getDeviceProtectStatus(ctx, device.ID) @@ -188,6 +194,9 @@ func (s *Service) buildCardResolveResponse(ctx context.Context, card *model.IotC // 查 shop 名称 s.fillShopName(ctx, resp) + // 查套餐系列名称 + s.fillSeriesName(ctx, resp) + return resp, nil } @@ -221,6 +230,17 @@ func (s *Service) fillShopName(ctx context.Context, resp *dto.AssetResolveRespon } } +// fillSeriesName 填充套餐系列名称 +func (s *Service) fillSeriesName(ctx context.Context, resp *dto.AssetResolveResponse) { + if resp.SeriesID == nil || *resp.SeriesID == 0 { + return + } + series, err := s.packageSeriesStore.GetByID(ctx, *resp.SeriesID) + if err == nil && series != nil { + resp.SeriesName = series.SeriesName + } +} + // GetRealtimeStatus 获取资产实时状态(只读DB/Redis) func (s *Service) GetRealtimeStatus(ctx context.Context, assetType string, id uint) (*dto.AssetRealtimeStatusResponse, error) { resp := &dto.AssetRealtimeStatusResponse{