From c5695dda2f9e63441f9afffb8252f3906e07b22e Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Thu, 12 Jun 2025 14:35:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?perf:=E6=A0=B9=E6=8D=AE=E6=8C=87=E5=AF=BC?= =?UTF-8?q?=E5=BB=BA=E8=AE=AE=E4=BC=98=E5=8C=96=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CAP/EventHandlers/TrackDeleteEventHandler.cs | 2 +- .../CAP/EventHandlers/TrackPushEventHandler.cs | 2 +- .../CAP/EventHandlers/TrackUpsertEventHandler.cs | 8 ++++---- .../CAP/EventHandlers/TrackWarningCalcEventHandler.cs | 2 +- src/SJZY.Track.Application/CAP/MySubscribeExecutor.cs | 6 +++--- .../CAP/SubscriberExecutionFailedException.cs | 2 +- .../Caching/BasicCacheForPeriodicRefresh.cs | 2 +- src/SJZY.Track.Application/Helpers/StringHelper.cs | 10 ++++------ .../Services/ProvideServices/OrderService.cs | 4 ++-- .../Services/ProvideServices/TrackService.Query.cs | 4 ++-- .../Services/TrackOrders/TrackOrderService.cs | 2 +- .../Services/TrackPull/TrackPullCacheService.cs | 2 +- .../Services/TrackPush/TrackPushCacheService.cs | 2 +- src/SJZY.Track.Domain/Consts/GlobalConst.cs | 2 +- 14 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index 79e6998d..5fe88be1 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -117,7 +117,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe } } - private bool CanDelete(TrackDeleteEvent @event) + private static bool CanDelete(TrackDeleteEvent @event) { if (@event.OrderIds == null) return true; diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs index c6de6489..7994fecc 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs @@ -372,7 +372,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe } // 构建更新推送请求体 - private TrackUpdateInput BuiltUpdateItem(TrackPushContentConfigDto config, TrackPushRecordIndex log) + private static TrackUpdateInput BuiltUpdateItem(TrackPushContentConfigDto config, TrackPushRecordIndex log) { var trackDatetime = log.TrackTime.AddHours(config.TrackTimeZone ?? log.TrackTimeZone - log.TrackTimeZone); var trackDateStr = DateTimeFormat(trackDatetime, config.TrackTimeZone ?? log.TrackTimeZone, config); diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index 61cd543b..76e87f99 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -130,7 +130,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe } } - private bool CanDelete(TrackUpsertEvent @event) + private static bool CanDelete(TrackUpsertEvent @event) { // 系统创建的轨迹不允许修改 if (@event.Visited.IsNullOrEmpty() && @event is { OperationMan: GlobalConst.SystemUser, IsAdd: false }) @@ -383,7 +383,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe } - private TrackDetailsIndex BuiltUpdateTrack(TrackUpsertEvent @event, TrackDetailsIndex track, OrderIdentifier order, + private static TrackDetailsIndex BuiltUpdateTrack(TrackUpsertEvent @event, TrackDetailsIndex track, OrderIdentifier order, TrackContentVO trackContent) { //外部轨迹,轨迹发生地,轨迹发生时间,轨迹发生时区,不允许更改 @@ -428,7 +428,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe return track; } - private TrackDetailsIndex BuiltNewTrack(TrackUpsertEvent @event, OrderIdentifier order, TrackContentVO trackContent) + private static TrackDetailsIndex BuiltNewTrack(TrackUpsertEvent @event, OrderIdentifier order, TrackContentVO trackContent) { var track = new TrackDetailsIndex { @@ -483,7 +483,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe return track; } - private OrderOperationRecordIndex BuildOrderOperationRecord(TrackUpsertEvent @event, TrackDetailsIndex track, OrderIdentifier order) + private static OrderOperationRecordIndex BuildOrderOperationRecord(TrackUpsertEvent @event, TrackDetailsIndex track, OrderIdentifier order) { return new OrderOperationRecordIndex { diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackWarningCalcEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackWarningCalcEventHandler.cs index 0acde53b..35109655 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackWarningCalcEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackWarningCalcEventHandler.cs @@ -49,7 +49,7 @@ public class TrackWarningCalcEventHandler : ITransientDependency, ICapSubscribe await _forewarningNotifyService.WarningCalculateAsync(BuiltWarningDto(orders, @event)); } - private WarningDto BuiltWarningDto(List orders, TrackWarningCalcEvent @event) + private static WarningDto BuiltWarningDto(List orders, TrackWarningCalcEvent @event) { return new WarningDto { diff --git a/src/SJZY.Track.Application/CAP/MySubscribeExecutor.cs b/src/SJZY.Track.Application/CAP/MySubscribeExecutor.cs index 39412572..6aed1398 100644 --- a/src/SJZY.Track.Application/CAP/MySubscribeExecutor.cs +++ b/src/SJZY.Track.Application/CAP/MySubscribeExecutor.cs @@ -204,7 +204,7 @@ public class MySubscribeExecutor : ISubscribeExecutor #region tracing - private long? TracingBefore(Message message, MethodInfo method) + private static long? TracingBefore(Message message, MethodInfo method) { if (s_diagnosticListener.IsEnabled(CapDiagnosticListenerNames.BeforeSubscriberInvoke)) { @@ -224,7 +224,7 @@ public class MySubscribeExecutor : ISubscribeExecutor return null; } - private void TracingAfter(long? tracingTimestamp, Message message, MethodInfo method) + private static void TracingAfter(long? tracingTimestamp, Message message, MethodInfo method) { CapEventCounterSource.Log.WriteInvokeMetrics(); if (tracingTimestamp != null && @@ -244,7 +244,7 @@ public class MySubscribeExecutor : ISubscribeExecutor } } - private void TracingError(long? tracingTimestamp, Message message, MethodInfo? method, Exception ex) + private static void TracingError(long? tracingTimestamp, Message message, MethodInfo? method, Exception ex) { if (tracingTimestamp != null && s_diagnosticListener.IsEnabled(CapDiagnosticListenerNames.ErrorSubscriberInvoke)) diff --git a/src/SJZY.Track.Application/CAP/SubscriberExecutionFailedException.cs b/src/SJZY.Track.Application/CAP/SubscriberExecutionFailedException.cs index 567f5a9e..2b780c56 100644 --- a/src/SJZY.Track.Application/CAP/SubscriberExecutionFailedException.cs +++ b/src/SJZY.Track.Application/CAP/SubscriberExecutionFailedException.cs @@ -1,6 +1,6 @@ namespace SJZY.Track.Application.CAP; -internal class SubscriberExecutionFailedException : Exception +internal sealed class SubscriberExecutionFailedException : Exception { private readonly Exception _originException; diff --git a/src/SJZY.Track.Application/Caching/BasicCacheForPeriodicRefresh.cs b/src/SJZY.Track.Application/Caching/BasicCacheForPeriodicRefresh.cs index 609bf823..bc8325d6 100644 --- a/src/SJZY.Track.Application/Caching/BasicCacheForPeriodicRefresh.cs +++ b/src/SJZY.Track.Application/Caching/BasicCacheForPeriodicRefresh.cs @@ -476,7 +476,7 @@ public abstract class BasicCacheForPeriodicRefresh #endregion - private class CacheEntry + private sealed class CacheEntry { private static readonly DateTime NoExpire = DateTime.MaxValue; public TValue? Data { get; set; } diff --git a/src/SJZY.Track.Application/Helpers/StringHelper.cs b/src/SJZY.Track.Application/Helpers/StringHelper.cs index 713445b5..ecb0bfae 100644 --- a/src/SJZY.Track.Application/Helpers/StringHelper.cs +++ b/src/SJZY.Track.Application/Helpers/StringHelper.cs @@ -30,16 +30,14 @@ public class StringHelper public static string GetHash(string str) { // 将字符串转换为字节 - byte[] data = Encoding.UTF8.GetBytes(str); + var data = Encoding.UTF8.GetBytes(str); - // 创建SHA256实例 - using SHA256 sha256 = SHA256.Create(); // 计算哈希值 - byte[] hash = sha256.ComputeHash(data); + var hash = SHA256.HashData(data); // 将哈希值转换为16进制字符串 - StringBuilder sb = new StringBuilder(); - foreach (byte b in hash) + var sb = new StringBuilder(); + foreach (var b in hash) { sb.Append(b.ToString("x2")); } diff --git a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs index 6634f8d4..b4917999 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs @@ -148,7 +148,7 @@ public partial class OrderService : ApplicationService, IOrderService } - private List BuiltOrderPullStatus(List? pullConfigInfos) + private static List BuiltOrderPullStatus(List? pullConfigInfos) { if (pullConfigInfos == null) return new List(); @@ -178,7 +178,7 @@ public partial class OrderService : ApplicationService, IOrderService }).ToList(); } - private List BuiltOrderPlatformNumbers(List? pullConfigInfos) + private static List BuiltOrderPlatformNumbers(List? pullConfigInfos) { if (pullConfigInfos == null) return new List(); diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs index 44aee2b1..f872a99f 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs @@ -375,7 +375,7 @@ public partial class TrackService } - private class TrackIdxWarp + private sealed class TrackIdxWarp { public TrackDetail Track { get; set; } public int Index { get; set; } @@ -388,7 +388,7 @@ public partial class TrackService } - private class TrackWrap + private sealed class TrackWrap { public TrackDetail Track { get; set; } diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs index 2c1c5f59..fdaba31d 100644 --- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs +++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs @@ -312,7 +312,7 @@ public class TrackOrderService : ApplicationService return (long) (time - sTime).TotalMilliseconds; } - private string GetTimeZoneStr(float timeZone) + private static string GetTimeZoneStr(float timeZone) { var time = timeZone.ToString().Split('.'); if (time.Length > 1 && time[1] != "0") //如果时区有小数点 diff --git a/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs b/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs index e7d2a2e1..dcd6177e 100644 --- a/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs +++ b/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs @@ -62,6 +62,6 @@ public class TrackPullCacheService : ITransientDependency, ITrackPullCacheServic return data; } - public string TrackPullContentKey(int subSystemId, string serviceProviderCode) => + public static string TrackPullContentKey(int subSystemId, string serviceProviderCode) => $"{GlobalConst.TrackPullContentKeyPrefix}:{subSystemId}:{serviceProviderCode}"; } diff --git a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs index 577529eb..a7098b8d 100644 --- a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs +++ b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs @@ -39,7 +39,7 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc return data; } - private string TrackPushContentKey(int subSystemId, int customId) => + private static string TrackPushContentKey(int subSystemId, int customId) => $"{GlobalConst.TrackPushContentKeyPrefix}:{subSystemId}:{customId}"; private async Task?> DoGetPushContentConfigsAsync(int subSystemId, int customId) diff --git a/src/SJZY.Track.Domain/Consts/GlobalConst.cs b/src/SJZY.Track.Domain/Consts/GlobalConst.cs index f081cacc..145ef0dc 100644 --- a/src/SJZY.Track.Domain/Consts/GlobalConst.cs +++ b/src/SJZY.Track.Domain/Consts/GlobalConst.cs @@ -18,5 +18,5 @@ public partial class GlobalConst public const string CapNoRetryErrorCode = "599"; - public static DateTime MaxDateTime = new DateTime(2999, 1, 1, 0, 0, 0); + public static readonly DateTime MaxDateTime = new DateTime(2999, 1, 1, 0, 0, 0); } From fee07688536c06e3ea79afa5d7ab10cfa5b3952f Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Mon, 16 Jun 2025 14:58:13 +0800 Subject: [PATCH 2/3] =?UTF-8?q?update:=E8=B0=83=E6=95=B4=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=95=B0=E6=8D=AE=E7=9A=84ES=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/TrackDetailsEsRepository.cs | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs index e6415867..588a3bd7 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs @@ -1,7 +1,9 @@ using Nest; using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Expand.ElasticSearch.Services; +using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; +using SJZY.Track.Domain.Aggregates.TrackPushAggregate; using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Dtos.TrackDetails; using SJZY.Track.Domain.Enums; @@ -851,12 +853,35 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract(m => m - .AutoMap()); - //字段迁移,isVisibility => isExternal - await Context.UpdateByQueryAsync(u => u - .Query(q => q.MatchAll()) - .Script(s => s.Source("ctx._source.isExternal = ctx._source.isVisibility")) + var indexName1 = $"{GlobalConst.TrackDetailsIndex}-{DateTime.Now:yyyy.MM.dd}"; + var indexName2 = $"{GlobalConst.TrackPushRecordIndex}-{DateTime.Now:yyyy.MM.dd}"; + var indexName3 = $"{GlobalConst.OrderOperationRecordIndex}-{DateTime.Now:yyyy.MM.dd}"; + + var exists1 = await Context.Indices.ExistsAsync(indexName1); + if (!exists1.Exists) + { + await Context.Indices.CreateAsync(indexName1); + await Context.MapAsync(m => m.Index(indexName1).AutoMap()); + } + + var exists2 = await Context.Indices.ExistsAsync(indexName2); + if (!exists2.Exists) + { + await Context.Indices.CreateAsync(indexName2); + await Context.MapAsync(m => m.Index(indexName2).AutoMap()); + } + + var exists3 = await Context.Indices.ExistsAsync(indexName3); + if (!exists3.Exists) + { + await Context.Indices.CreateAsync(indexName3); + await Context.MapAsync(m => m.Index(indexName3).AutoMap()); + } + + var r = await Context.Indices.BulkAliasAsync(b => + b.Add(a => a.Alias(GlobalConst.TrackDetailsIndex).Index(indexName1)) + .Add(a => a.Alias(GlobalConst.TrackPushRecordIndex).Index(indexName2)) + .Add(a => a.Alias(GlobalConst.OrderOperationRecordIndex).Index(indexName3)) ); } } From 3d162cf99744eaadea33f23f6997b34aa7065068 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Thu, 19 Jun 2025 15:59:03 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E8=AE=B0=E5=BD=95=E9=93=BE=E8=B7=AF=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Kafka/WarningCalcBackgroundService.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application/Kafka/WarningCalcBackgroundService.cs b/src/SJZY.Track.Application/Kafka/WarningCalcBackgroundService.cs index 9aaaff06..32a75ddc 100644 --- a/src/SJZY.Track.Application/Kafka/WarningCalcBackgroundService.cs +++ b/src/SJZY.Track.Application/Kafka/WarningCalcBackgroundService.cs @@ -70,6 +70,7 @@ public sealed class WarningCalcBackgroundService : BackgroundService { _activity?.SetTag("HandleTime", _stopwatch.ElapsedMilliseconds); _activity?.Dispose(); + _activity = null; } } @@ -97,8 +98,6 @@ public sealed class WarningCalcBackgroundService : BackgroundService // 提交内存中所有的偏移到服务器,适用于EnableAutoCommit为false的手动提交场景 _consumer.Commit(); - _activity.Dispose(); - _activity = null; } private async ValueTask MessageHandler(IEnumerable> messages, CancellationToken ct)