diff --git a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs index 0a613e35..84f78a12 100644 --- a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs +++ b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs @@ -261,12 +261,20 @@ public class TrackContentService : ApplicationService Data = ObjectMapper.Map(content) }; - - if (res.Data != default && res.Data.Files.Any()) + if (res.Data != null && res.Data.Files?.Count > 0) { + var ossKeys = res.Data.Files + .Where(x => !string.IsNullOrWhiteSpace(x.OssKey)) + .Select(x => x.OssKey) + .ToArray(); + + if (ossKeys.Length == 0) return res; + + var ossKeyUrlDict = OSSHelper.GetUrlByKeys(ossKeys); foreach (var item in res.Data.Files) { - item.Url = OSSHelper.GetUrlByKey(item.OssKey); + if (string.IsNullOrWhiteSpace(item.OssKey)) continue; + item.Url = ossKeyUrlDict.GetValueOrDefault(item.OssKey)!; } } @@ -305,6 +313,7 @@ public class TrackContentService : ApplicationService { trackDetails = trackDetails.Where(m => m.Source != (int) TrackSourceEnum.ExternalServiceProvide).ToList(); } + //进行推送时,匹配订单类型一致的轨迹 if (input.TrackOptionType == TrackOptionType.推送) { @@ -312,8 +321,8 @@ public class TrackContentService : ApplicationService //没有推送配置也不会展示任何下拉 if (pushConfigs == null || pushConfigs.Count == 0) return res; //选订单类型和配置订单类型一致的配置的轨迹代码 - var trackCodes = pushConfigs.Where(m => m.OrderType == order.OrderType) - .Select(x=>x.TrackCode) + var trackCodes = pushConfigs.Where(m => m.OrderType == order.OrderType) + .Select(x => x.TrackCode) .Distinct() .ToHashSet(); //根据配置过滤轨迹