fix:修改轨迹引发的刷新主表逻辑bug

This commit is contained in:
李鹏军 2024-04-16 18:38:18 +08:00
parent 1f115bad3e
commit d73a7ad119

View File

@ -94,6 +94,9 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
var orderIds = @event.OrderIdentifiers.Select(x => x.OrderId).ToArray(); var orderIds = @event.OrderIdentifiers.Select(x => x.OrderId).ToArray();
var tracks = await _trackDetailsRepository.GetListAsync(orderIds, @event.TrackCode); var tracks = await _trackDetailsRepository.GetListAsync(orderIds, @event.TrackCode);
var firstTrack = tracks.FirstOrDefault();
if (firstTrack == null) return;
var insertTracks = new List<TrackDetailsIndex>(); var insertTracks = new List<TrackDetailsIndex>();
foreach (var order in @event.OrderIdentifiers) foreach (var order in @event.OrderIdentifiers)
@ -172,24 +175,21 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
canNextOrderIds.Add(order.OrderId); canNextOrderIds.Add(order.OrderId);
} }
var firstTrack = insertTracks.FirstOrDefault(); // 批量add to es
if (firstTrack == null) return;
// step1、upsert es轨迹
await _trackDetailsRepository.AddManyAsync(insertTracks); await _trackDetailsRepository.AddManyAsync(insertTracks);
// step3、触发订单主表更新事件(异步) // 触发订单主表更新事件(异步)
await _capPublisher.PublishAsync(GlobalConst.TrackChangeAfterUpdateOrderSubscribe, await _capPublisher.PublishAsync(GlobalConst.TrackChangeAfterUpdateOrderSubscribe,
new TrackChangeAfterUpdateOrderEvent new TrackChangeAfterUpdateOrderEvent
{ {
OrderIds = orderIds, OrderIds = orderIds,
IsCompleted = @event.TrackRefreshData.IsCompleted, IsCompleted = @event.TrackRefreshData.IsCompleted,
TrackCode = firstTrack.TrackCode, TrackCode = @event.TrackCode,
TrackContent = firstTrack.TrackContent, TrackContent = firstTrack.TrackContent,
TrackEnContent = firstTrack.TrackEnContent, TrackEnContent = firstTrack.TrackEnContent,
TrackPlace = firstTrack.TrackPlace, TrackPlace = @event.TrackPlace,
TrackTime = firstTrack.TrackTime, TrackTime = @event.TrackTime,
TrackTimeZone = firstTrack.TrackTimeZone TrackTimeZone = @event.TrackTimeZone
}); });
} }
} }