From 8105d041447311801e6ceb3b6455f87a2d20d400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Thu, 5 Dec 2024 17:42:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=B1=E4=BA=8E=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=BF=87=E5=BF=AB=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E8=BF=98=E6=9C=AA=E8=90=BD=E5=BA=93=EF=BC=8C?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=87=BA=E8=A6=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=EF=BC=8C=E7=8E=B0=E5=A2=9E=E5=8A=A0=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E7=AD=96=E7=95=A5=EF=BC=8C=E6=8F=90=E9=AB=98=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E5=8F=AF=E9=9D=A0=E6=80=A7=EF=BC=8C=E5=BD=93?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=BF=98=E6=98=AF=E5=A4=B1=E8=B4=A5=E6=97=B6?= =?UTF-8?q?=E4=BC=9A=E8=BF=94=E5=9B=9E400=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ProvideServices/TrackService.cs | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs index 4e90f379..ce81abd6 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs @@ -104,6 +104,35 @@ public partial class TrackService : ApplicationService, ITrackService .Where(x => x.TrackTime == input.TrackTime) .ToList(); + //当为更新操作时发现更新的数目为0进行重试操作 + if (!input.IsAdd && tracks.Count == 0) + { + var curRetryCount = 0; + var success = false; + while (!success && curRetryCount < GlobalConst.MaxUpdateTrackRetryCount) + { + try + { + tracks = (await _trackDetailsEsRepository.GetListAsync(new[] { order.Id }, input.TrackCode, true)) + .Where(x => x.TrackTime == input.TrackTime) + .ToList(); + if (tracks.Count > 0) + success = true; + await Task.Delay(300); + } + finally + { + curRetryCount++; + } + } + + if (tracks.Count == 0) + { + throw new BusinessException(message: $"订单:{input.OrderNo},轨迹代码:{input.TrackCode}没有要更新的记录"); + } + } + + //更新轨迹,同一时间存在多条轨迹记录,理由:不清晰到底要修改哪一条或是全部修改 if (!input.IsAdd && tracks.Count > 1) { @@ -366,6 +395,34 @@ public partial class TrackService : ApplicationService, ITrackService .Where(x => x.TrackTime == input.TrackTime) .ToList(); + //当为更新操作时发现更新的数目为0进行重试操作 + if (!input.IsAdd && tracks.Count == 0) + { + var curRetryCount = 0; + var success = false; + while (!success && curRetryCount < GlobalConst.MaxUpdateTrackRetryCount) + { + try + { + tracks = (await _trackDetailsEsRepository.GetListAsync(new[] { order.Id }, input.TrackCode, true)) + .Where(x => x.TrackTime == input.TrackTime) + .ToList(); + if (tracks.Count > 0) + success = true; + await Task.Delay(300); + } + finally + { + curRetryCount++; + } + } + + if (tracks.Count == 0) + { + throw new BusinessException(message: $"订单:[{string.Join(",", input.OrderNos)}],轨迹代码:{input.TrackCode}没有要更新的记录"); + } + } + //更新轨迹,同一时间存在多条轨迹记录,理由:不清晰到底要修改哪一条或是全部修改 if (!input.IsAdd && tracks.Count > 1) {