This commit is contained in:
xiaolipro 2025-01-09 18:07:16 +08:00
parent 4fb127ed47
commit f5f9227aeb

View File

@ -1,6 +1,7 @@
using DotNetCore.CAP; using DotNetCore.CAP;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.InterfaceRelay.Application.Contracts; using SJZY.InterfaceRelay.Application.Contracts;
using SJZY.Track.Application.Contract.Dtos.TrackPush; using SJZY.Track.Application.Contract.Dtos.TrackPush;
@ -306,16 +307,19 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
if (config.IsAllPushWithLatest) if (config.IsAllPushWithLatest)
{ {
var old = body!.Data var old = body!.Data
.Where(x => x["code"] == cur["code"])
.WhereIf(!compareFields.IsNullOrWhiteSpace(), x => .WhereIf(!compareFields.IsNullOrWhiteSpace(), x =>
{ {
if (x["extra"] is Dictionary<string, object> 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; return false;
}) })
.FirstOrDefault(x => x["code"] == cur["code"]); .FirstOrDefault();
if (old != null) if (old != null)
{ {
body.Data.Remove(old); body.Data.Remove(old);