diff --git a/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs b/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs index feaf198f..97451ed8 100644 --- a/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs +++ b/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs @@ -3,12 +3,13 @@ using DotNetCore.CAP.Filter; using SJZY.Expand.ABP.Core; using SJZY.Expand.ABP.Core.Logger; using SJZY.Expand.ABP.Core.PublicMethords; +using SJZY.Track.Domain.Consts; namespace SJZY.Track.Application.EventHandlers; -public class CAPFilter : SubscribeFilter +public class CapFilter : SubscribeFilter { - const string _ERROR_CODE = "Error599"; + const string ErrorCode = "Error599"; /// /// 执行前 @@ -17,6 +18,8 @@ public class CAPFilter : SubscribeFilter /// public override Task OnSubscribeExecutingAsync(ExecutingContext context) { + if (context.DeliverMessage.Headers["cap-msg-name"]!.EndsWith(GlobalConst.TrackRefreshSubscribe)) + return Task.CompletedTask; var argumentJsonStr = context.Arguments.ToJson(); context.DeliverMessage.Headers["sjzy-receive-time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"); @@ -29,7 +32,7 @@ public class CAPFilter : SubscribeFilter { var isSkip = !string.IsNullOrEmpty(RedisHelper.Client.Get($"CapExcuteFilter:{hash}")); if (isSkip) - throw new BusinessException(_ERROR_CODE, $"检测到重复消费,消费参数:{argumentJsonStr}"); + throw new BusinessException(ErrorCode, $"检测到重复消费,消费参数:{argumentJsonStr}"); RedisHelper.Client.Set($"CapExcuteFilter:{hash}", 60 * 10, TimeSpan.FromHours(1).Seconds); // 1h内不允许一模一样的参数重复消费 @@ -51,7 +54,7 @@ public class CAPFilter : SubscribeFilter context.DeliverMessage.Headers.TryGetValue("sjzy-arguments", out var arguments); context.DeliverMessage.Headers.TryGetValue("cap-msg-id", out var messageId); - BuildLog(receiveTime, receiveName, arguments, false, messageId); + BuildLog(receiveTime!, receiveName!, arguments!, false, messageId!); return Task.CompletedTask; } @@ -67,7 +70,7 @@ public class CAPFilter : SubscribeFilter context.ExceptionHandled = true; context.DeliverMessage.Headers.TryGetValue("cap-msg-id", out var messageId); - if (context.Exception is BusinessException ex && ex.Code == _ERROR_CODE) + if (context.Exception is BusinessException ex && ex.Code == ErrorCode) LogHelper.Warn(ex.ToString()); else LogHelper.Error($"cap-msg-id:{messageId}\n{context.Exception}"); @@ -77,7 +80,7 @@ public class CAPFilter : SubscribeFilter context.DeliverMessage.Headers.TryGetValue("cap-msg-name", out var receiveName); context.DeliverMessage.Headers.TryGetValue("sjzy-arguments", out var arguments); - BuildLog(receiveTime, receiveName, arguments, true, messageId); + BuildLog(receiveTime!, receiveName!, arguments!, true, messageId!); return Task.CompletedTask; } diff --git a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs index 031356d8..c1b19b5f 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs @@ -129,7 +129,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe IsCanDelete = false, OriginTrackContent = @event.OriginTrackContent, OriginTrackData = @event.OriginTrackData, - CreateUser = @event.OperationMan, + CreateUser = @event.OperationMan ?? "系统", CreateTime = DateTime.Now }; diff --git a/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs b/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs index 2b1649a1..28f3329c 100644 --- a/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs +++ b/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs @@ -111,7 +111,7 @@ namespace SJZY.Track.Application LogHelper.Error("【严重】CAP失败回调事件发生未处理异常" + ex); } }; - }).AddSubscribeFilter(); + }).AddSubscribeFilter(); } public override void PreConfigureServices(ServiceConfigurationContext context)