From ffd6d0e6894ff7db718c7cfe1d8aae7450526743 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 11:37:43 +0800 Subject: [PATCH 1/4] =?UTF-8?q?update:=20=E3=80=90=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BD=A8=E8=BF=B9=E6=A8=A1=E6=9D=BF=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=91=E5=A2=9E=E5=8A=A0=E6=A8=A1=E7=B3=8A=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProvideServices/GetPageTrackTemplateListInput.cs | 5 +++++ .../TrackTemplate/GetPageTrackTemplateListInputVo.cs | 9 +++++++-- .../Repositories/TrackTemplateRepository.cs | 5 +++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs index d193eb8e..a591adf7 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs @@ -21,4 +21,9 @@ public class GetPageTrackTemplateListInput : PageInfoInput /// 模板code /// public string? TemplateCode { get; set; } + + /// + /// 关键字 + /// + public string? KeyWord { get; set; } } diff --git a/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs index b6e253a0..f801ffdc 100644 --- a/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs @@ -1,8 +1,8 @@ namespace SJZY.Track.Domain.Dtos.TrackTemplate; -public class GetPageTrackTemplateListInputVo :PageInfoInput +public class GetPageTrackTemplateListInputVo : PageInfoInput { - /// + /// /// 子系统id /// public int SubSystemId { get; set; } @@ -21,4 +21,9 @@ public class GetPageTrackTemplateListInputVo :PageInfoInput /// 模板code /// public string? TemplateCode { get; set; } + + /// + /// 关键字 + /// + public string? KeyWord { get; set; } } diff --git a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs index c7f7c2c4..d399bcd1 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs @@ -250,6 +250,11 @@ public class TrackTemplateRepository : BasicRepository, ITr .LeftJoin((a, b, c) => b.TrackStatusId == c.Id) .LeftJoin((a, b, c, d) => c.Node == d.Id) .Where(a => templateIds.Contains(a.TrackTemplateId)) + .WhereIF(!input.KeyWord.IsNullOrWhiteSpace(), (a, b, c, d) => + b.Code.Contains(input.KeyWord!) + || b.EnContent.Contains(input.KeyWord!) + || b.Content.Contains(input.KeyWord!) + ) .Select((a, b, c, d) => new TemplateContentDtoVo { TemplateId = a.TrackTemplateId, 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 2/4] =?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) { From 1702aa76543231a04b88cde3f973cd111243a42a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Thu, 12 Dec 2024 11:11:00 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DCAP=E5=B9=82?= =?UTF-8?q?=E7=AD=89=E8=BF=87=E6=BB=A4=E6=97=B6=E6=95=88=E8=BF=87=E9=95=BF?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E9=87=8D=E8=AF=95=E5=8F=82=E6=95=B0=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA=E6=93=8D=E4=BD=9C=E8=BF=87=E5=BF=AB=E8=80=8C=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E7=A6=81=E6=AD=A2=E5=A4=84=E7=90=86=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E7=8E=B0=E5=B0=86=E6=97=B6=E6=95=88=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=87=B31s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Application/CAP/CAPFilter.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/CAPFilter.cs b/src/SJZY.Track.Application/CAP/CAPFilter.cs index 35fa9f23..0decb640 100644 --- a/src/SJZY.Track.Application/CAP/CAPFilter.cs +++ b/src/SJZY.Track.Application/CAP/CAPFilter.cs @@ -29,7 +29,7 @@ public class CapFilter : SubscribeFilter context.DeliverMessage.Headers["sjzy-arguments-hash"] = hash; } - if (await RedisHelper.Client.ExistsAsync($"CapExecuteFilter:{hash}")) + if (await RedisHelper.Client.ExistsAsync($"CapExecuteFilter:{hash}{DateTime.Now:G}")) { throw new BusinessException(GlobalConst.CapNoRetryErrorCode, $"检测到重复消费,消费参数:{argumentJsonStr}"); } @@ -41,7 +41,7 @@ public class CapFilter : SubscribeFilter context.DeliverMessage.Headers.TryGetValue("sjzy-arguments-hash", out var hash); if (!hash.IsNullOrEmpty()) { - await RedisHelper.Client.SetAsync($"CapExecuteFilter:{hash}", 1, TimeSpan.FromMinutes(3)); + await RedisHelper.Client.SetAsync($"CapExecuteFilter:{hash}{DateTime.Now:G}", 1, TimeSpan.FromMinutes(3)); } } From 337af63c6d2139c2122b20995d4cd0b5543fa3ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Fri, 13 Dec 2024 09:56:20 +0800 Subject: [PATCH 4/4] =?UTF-8?q?add:=20=E8=A1=A5=E5=85=85=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E6=AC=A1=E6=95=B0=E5=B8=B8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Domain/Consts/GlobalConst.Track.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/SJZY.Track.Domain/Consts/GlobalConst.Track.cs b/src/SJZY.Track.Domain/Consts/GlobalConst.Track.cs index eed1301d..3ffed645 100644 --- a/src/SJZY.Track.Domain/Consts/GlobalConst.Track.cs +++ b/src/SJZY.Track.Domain/Consts/GlobalConst.Track.cs @@ -8,4 +8,9 @@ public partial class GlobalConst /// 轨迹数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// public static readonly ImmutableHashSet SupportTrackSources = ImmutableHashSet.Create(1, 2, 3); + + /// + /// 最大更新轨迹重试次数 + /// + public const int MaxUpdateTrackRetryCount = 3; }