fix 循环依赖异常case

This commit is contained in:
李鹏军 2024-03-19 15:51:15 +08:00
parent a13ee83d00
commit c4917d66cc
2 changed files with 7 additions and 11 deletions

View File

@ -1,5 +1,6 @@
using DotNetCore.CAP; using DotNetCore.CAP;
using SJZY.Expand.ABP.Core.Logger; using SJZY.Expand.ABP.Core.Logger;
using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
@ -34,8 +35,6 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
return; return;
} }
@event.Visited.Add(@event.OrderId);
// 不同子系统需要做内容映射 // 不同子系统需要做内容映射
if (@event.UpSubSystemId != 0 && @event.UpSubSystemId != @event.SubSystemId) if (@event.UpSubSystemId != 0 && @event.UpSubSystemId != @event.SubSystemId)
{ {
@ -75,13 +74,11 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
var linkedOrders = await _orderRepository.GetLinkedOrdersAsync(@event.OrderId); var linkedOrders = await _orderRepository.GetLinkedOrdersAsync(@event.OrderId);
foreach (var linkedOrder in linkedOrders) foreach (var linkedOrder in linkedOrders)
{ {
var nextEvent = new TrackDeleteEvent var nextEvent = @event.DeepCopy();
{ nextEvent.Visited.Add(@event.OrderId);
OrderId = linkedOrder.OrderId, nextEvent.TrackCodes = @event.TrackCodes;
TrackCodes = @event.TrackCodes, nextEvent.SubSystemId = linkedOrder.SubSystemId;
SubSystemId = linkedOrder.SubSystemId, nextEvent.UpSubSystemId = @event.SubSystemId;
UpSubSystemId = @event.SubSystemId
};
await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, nextEvent); await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, nextEvent);
} }

View File

@ -42,8 +42,6 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
return; return;
} }
@event.Visited.Add(@event.OrderId);
// 不同子系统需要做内容映射 // 不同子系统需要做内容映射
if (@event.UpSubSystemId != 0 && @event.UpSubSystemId != @event.SubSystemId) if (@event.UpSubSystemId != 0 && @event.UpSubSystemId != @event.SubSystemId)
{ {
@ -88,6 +86,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
foreach (var linkedOrder in linkedOrders) foreach (var linkedOrder in linkedOrders)
{ {
var nextEvent = @event.DeepCopy(); var nextEvent = @event.DeepCopy();
nextEvent.Visited.Add(@event.OrderId);
nextEvent.OrderId = linkedOrder.OrderId; nextEvent.OrderId = linkedOrder.OrderId;
nextEvent.OrderType = linkedOrder.OrderType; nextEvent.OrderType = linkedOrder.OrderType;
nextEvent.OrderNo = linkedOrder.OrderNo; nextEvent.OrderNo = linkedOrder.OrderNo;