From 42afc3d5a15fe318f2907a15bd43b84a41a6c001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Wed, 4 Dec 2024 17:08:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=80=9A=E8=BF=87EsId?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BD=A8=E8=BF=B9=E8=AE=A2=E5=8D=95=E4=B8=BB?= =?UTF-8?q?=E8=A1=A8=E5=9B=9E=E9=80=80=E6=9B=B4=E6=96=B0=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventHandlers/TrackDeleteEventHandler.cs | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index 3d9885fd..e9db1cfa 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -178,27 +178,28 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe List deleteTracks; if (@event.EsIds != null && @event.EsIds.Any()) //根据明确的esid进行删除 { - tracks = await _trackDetailsEsRepository.GetDataByIds(@event.EsIds); - orderIds = tracks.Select(m => m.OrderId).Distinct().ToList(); + deleteTracks = await _trackDetailsEsRepository.GetDataByIds(@event.EsIds); + orderIds = deleteTracks.Select(m => m.OrderId).Distinct().ToList(); @event.OrderIds = orderIds.ToArray(); - @event.TrackIdentifiers = tracks.Select(x => new TrackIdentifierDto + @event.TrackIdentifiers = deleteTracks.Select(x => new TrackIdentifierDto { TrackCode = x.TrackCode, TrackTime = x.TrackTime }).ToList(); // 外部api获取的轨迹不允许删除 - if (tracks.Any(m => m.Source == TrackSourceEnum.ExternalServiceProvide.GetHashCode())) - return tracks; + if (deleteTracks.Any(m => m.Source == TrackSourceEnum.ExternalServiceProvide.GetHashCode())) + return deleteTracks; + + //查出订单下的所有轨迹,以供后面回退使用 + tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds); // 删除轨迹 - foreach (var item in tracks) + foreach (var item in deleteTracks) { await _trackDetailsEsRepository.DeleteTrackByIdAsync(item.Id, item.IndexName); } - //已经删除的轨迹 - deleteTracks = tracks; //清理已经删除过的esid @event.EsIds = Array.Empty(); } @@ -208,9 +209,9 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds); //构建标识符集合 - var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime}").ToList(); + var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime:G}").ToList(); //根据标识符选出要删除的轨迹明细 - deleteTracks = tracks.Where(x => ids.Contains($"{x.TrackCode}{x.TrackTime}")).ToList(); + deleteTracks = tracks.Where(x => ids.Contains($"{x.TrackCode}{x.TrackTime:G}")).ToList(); if (deleteTracks.Count == 0) return deleteTracks;