fix: resolve 接口 series_name 永远为空,asset service 注入套餐系列 store
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m58s

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-03-16 10:59:29 +08:00
parent 907e500ffb
commit b1d6355a7d
2 changed files with 21 additions and 1 deletions

View File

@@ -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{