diff --git a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs index a162428a..56157b2d 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs @@ -94,6 +94,9 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe var orderIds = @event.OrderIdentifiers.Select(x => x.OrderId).ToArray(); var tracks = await _trackDetailsRepository.GetListAsync(orderIds, @event.TrackCode); + var firstTrack = tracks.FirstOrDefault(); + if (firstTrack == null) return; + var insertTracks = new List(); foreach (var order in @event.OrderIdentifiers) @@ -172,24 +175,21 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe canNextOrderIds.Add(order.OrderId); } - var firstTrack = insertTracks.FirstOrDefault(); - if (firstTrack == null) return; - - // step1、upsert es轨迹 + // 批量add to es await _trackDetailsRepository.AddManyAsync(insertTracks); - // step3、触发订单主表更新事件(异步) + // 触发订单主表更新事件(异步) await _capPublisher.PublishAsync(GlobalConst.TrackChangeAfterUpdateOrderSubscribe, new TrackChangeAfterUpdateOrderEvent { OrderIds = orderIds, IsCompleted = @event.TrackRefreshData.IsCompleted, - TrackCode = firstTrack.TrackCode, + TrackCode = @event.TrackCode, TrackContent = firstTrack.TrackContent, TrackEnContent = firstTrack.TrackEnContent, - TrackPlace = firstTrack.TrackPlace, - TrackTime = firstTrack.TrackTime, - TrackTimeZone = firstTrack.TrackTimeZone + TrackPlace = @event.TrackPlace, + TrackTime = @event.TrackTime, + TrackTimeZone = @event.TrackTimeZone }); } } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs index 238a9fd0..81d2bd06 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs @@ -17,6 +17,7 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract(s => s .Source() + .Size(1000) .Query(q => q .Bool(b => b .Must( @@ -165,6 +166,7 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract f.OrderType, orderType) ) + .Size(1000) ); return data.Documents.ToList();