From f5f9227aeb7fc6cd80247436302f6cd12d3c5af7 Mon Sep 17 00:00:00 2001 From: xiaolipro <2357729423@qq.com> Date: Thu, 9 Jan 2025 18:07:16 +0800 Subject: [PATCH] try --- .../CAP/EventHandlers/TrackPushEventHandler.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs index a8ff5339..d78beaca 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs @@ -1,6 +1,7 @@ using DotNetCore.CAP; using Microsoft.Extensions.Options; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.InterfaceRelay.Application.Contracts; using SJZY.Track.Application.Contract.Dtos.TrackPush; @@ -306,16 +307,19 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe if (config.IsAllPushWithLatest) { var old = body!.Data + .Where(x => x["code"] == cur["code"]) .WhereIf(!compareFields.IsNullOrWhiteSpace(), x => { - if (x["extra"] is Dictionary extra && extra.TryGetValue(compareFields!, out var value)) + if (x["extra"] == null || log.Extra == null) return false; + var extra = JObject.FromObject(x["extra"]!); + var curExtra = JObject.FromObject(log.Extra!); + if (extra.TryGetValue(compareFields!, out var value) && curExtra.TryGetValue(compareFields!, out var curValue) ) { - return value ==log.Extra![compareFields!]; + return value == curValue; } - return false; }) - .FirstOrDefault(x => x["code"] == cur["code"]); + .FirstOrDefault(); if (old != null) { body.Data.Remove(old);