fix: 修复根据ESid删除轨迹,向下刷导致重复删除出现ES删除报错的问题,从而影响关联订单的关联轨迹的删除

This commit is contained in:
云龙 王 2024-11-22 16:39:46 +08:00
parent 7b9de2b9ec
commit 47cc075b98

View File

@ -172,6 +172,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
tracks = await _trackDetailsEsRepository.GetDataByIds(@event.EsIds); tracks = await _trackDetailsEsRepository.GetDataByIds(@event.EsIds);
orderIds = tracks.Select(m => m.OrderId).Distinct().ToList(); orderIds = tracks.Select(m => m.OrderId).Distinct().ToList();
@event.OrderIds = orderIds.ToArray(); @event.OrderIds = orderIds.ToArray();
@event.TrackCodes = tracks.Select(x => x.TrackCode).Distinct().ToList();
// 外部api获取的轨迹不允许删除 // 外部api获取的轨迹不允许删除
if (tracks.Any(m => m.Source == TrackSourceEnum.ExternalServiceProvide.GetHashCode())) if (tracks.Any(m => m.Source == TrackSourceEnum.ExternalServiceProvide.GetHashCode()))
@ -182,6 +183,9 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
{ {
await _trackDetailsEsRepository.DeleteTrackByIdAsync(item.Id, item.IndexName); await _trackDetailsEsRepository.DeleteTrackByIdAsync(item.Id, item.IndexName);
} }
//清理已经删除过的esid
@event.EsIds = Array.Empty<string>();
} }
else //原有逻辑,根据轨迹code和订单进行删除 else //原有逻辑,根据轨迹code和订单进行删除
{ {
@ -235,7 +239,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
OrderId = order.Id, OrderId = order.Id,
OrderNo = order.OrderNo, OrderNo = order.OrderNo,
OptionType = OrderOperationType.删除轨迹.ToString(), OptionType = OrderOperationType.删除轨迹.ToString(),
Content = tracks?.Where(m=>m.OrderId == order.Id)?.ToList().ToJson(), Content = tracks?.Where(m => m.OrderId == order.Id)?.ToList().ToJson(),
CreateUserId = @event.OperationManId, CreateUserId = @event.OperationManId,
CreateUserName = @event.OperationMan ?? "", CreateUserName = @event.OperationMan ?? "",
CreateTime = DateTime.Now CreateTime = DateTime.Now