opt:轨迹upsert剪枝
This commit is contained in:
parent
2b678c2eb4
commit
ba5bf24931
@ -39,10 +39,11 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await HandleTrackAsync(@event);
|
var canNextOrderIds = new List<int>();
|
||||||
|
await HandleTrackAsync(@event, canNextOrderIds);
|
||||||
|
|
||||||
// 根据订单关联关系异步向下刷(异步)
|
// 根据订单关联关系异步向下刷(异步)
|
||||||
var linkedOrders = await _orderRepository.GetLinkedOrdersAsync(orderIds);
|
var linkedOrders = await _orderRepository.GetLinkedOrdersAsync(canNextOrderIds.ToArray());
|
||||||
foreach (var order in @event.OrderIdentifiers)
|
foreach (var order in @event.OrderIdentifiers)
|
||||||
{
|
{
|
||||||
// 理论上小包在这不会分组
|
// 理论上小包在这不会分组
|
||||||
@ -88,7 +89,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task HandleTrackAsync(TrackUpsertEvent @event)
|
private async Task HandleTrackAsync(TrackUpsertEvent @event, List<int> canNextOrderIds)
|
||||||
{
|
{
|
||||||
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);
|
||||||
@ -101,8 +102,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
|
|
||||||
if (@event.IsAdd != null)
|
if (@event.IsAdd != null)
|
||||||
{
|
{
|
||||||
if (track == null && !@event.IsAdd!.Value) return; // 不存在不让改
|
if (track == null && !@event.IsAdd!.Value) continue; // 不存在不让改
|
||||||
if (track != null && @event.IsAdd!.Value) return; // 存在不让创建
|
if (track != null && @event.IsAdd!.Value) continue; // 存在不让创建
|
||||||
}
|
}
|
||||||
|
|
||||||
if (track == default)
|
if (track == default)
|
||||||
@ -167,6 +168,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
};
|
};
|
||||||
|
|
||||||
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
|
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
|
||||||
|
|
||||||
|
canNextOrderIds.Add(order.OrderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
var firstTrack = insertTracks.FirstOrDefault();
|
var firstTrack = insertTracks.FirstOrDefault();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user