diff --git a/internal/service/agent_open_api/service.go b/internal/service/agent_open_api/service.go index b10c8b9..6b340d7 100644 --- a/internal/service/agent_open_api/service.go +++ b/internal/service/agent_open_api/service.go @@ -108,11 +108,18 @@ func (s *Service) GetCardTraffic(ctx context.Context, req *dto.AgentOpenAPICardQ // buildCardTrafficResponse 统一构造卡流量响应,支持卡和设备两种载体维度 func (s *Service) buildCardTrafficResponse(ctx context.Context, cardNo, carrierType string, carrierID uint, deviceNo string) (*dto.AgentOpenAPICardTrafficResponse, error) { activeStatus := constants.PackageUsageStatusActive + depletedStatus := constants.PackageUsageStatusDepleted pendingStatus := constants.PackageUsageStatusPending activeUsages, err := s.packageUsageStore.ListByCarrier(ctx, carrierType, carrierID, &activeStatus) if err != nil { return nil, errors.Wrap(errors.CodeInternalError, err, "查询生效套餐失败") } + // 已用完的套餐仍在有效期内,与生效中套餐一并展示 + depletedUsages, err := s.packageUsageStore.ListByCarrier(ctx, carrierType, carrierID, &depletedStatus) + if err != nil { + return nil, errors.Wrap(errors.CodeInternalError, err, "查询已用完套餐失败") + } + activeUsages = append(activeUsages, depletedUsages...) pendingUsages, err := s.packageUsageStore.ListByCarrier(ctx, carrierType, carrierID, &pendingStatus) if err != nil { return nil, errors.Wrap(errors.CodeInternalError, err, "查询待生效套餐失败")