From b1d6355a7d39c964fff60f2c2b6a0a25b8c75b15 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 16 Mar 2026 10:59:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20resolve=20=E6=8E=A5=E5=8F=A3=20series=5F?= =?UTF-8?q?name=20=E6=B0=B8=E8=BF=9C=E4=B8=BA=E7=A9=BA=EF=BC=8Casset=20ser?= =?UTF-8?q?vice=20=E6=B3=A8=E5=85=A5=E5=A5=97=E9=A4=90=E7=B3=BB=E5=88=97?= =?UTF-8?q?=20store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- internal/bootstrap/services.go | 2 +- internal/service/asset/service.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) 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{