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);
orderIds = tracks.Select(m => m.OrderId).Distinct().ToList();
@event.OrderIds = orderIds.ToArray();
@event.TrackCodes = tracks.Select(x => x.TrackCode).Distinct().ToList();
// 外部api获取的轨迹不允许删除
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);
}
//清理已经删除过的esid
@event.EsIds = Array.Empty<string>();
}
else //原有逻辑,根据轨迹code和订单进行删除
{
@ -235,7 +239,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
OrderId = order.Id,
OrderNo = order.OrderNo,
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,
CreateUserName = @event.OperationMan ?? "",
CreateTime = DateTime.Now