diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs index a7cc3d36..fc9c5e03 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs @@ -404,31 +404,32 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe return trackIdentifies.Contains($"{code}{null}"); }).ToList(); - // if (config.IsAllPushWithLatest) - // { - // //同code同比较字段保证唯一 - // var old = body!.Data - // .Where(x => - // { - // //反序列化出的JsonElement和字典字符串类型做比较 - // var a = ((JsonElement) x["code"]!).GetString(); - // var b = cur["code"]! - // .ToString(); //tips: 需要要将object类型的字符串转为string类型,否则使用的是引用比较,反序列化出的string一定和本地string引用不同 - // return a == b; - // }) - // .WhereIf(!compareFields.IsNullOrWhiteSpace(), x => - // { - // if (x["extra"] == null || log.Extra == null) return false; - // return TextJsonHelper.EqByJsonElementField(x["extra"]!, - // TextJsonHelper.Deserialize(log.Extra), compareFields!); - // }) - // .FirstOrDefault(); - // - // if (old != null) - // { - // body.Data.Remove(old); - // } - // } + + if (config.IsAllPushWithLatest) + { + //同code同比较字段保证唯一 + var old = body!.Data + .Where(x => + { + //反序列化出的JsonElement和字典字符串类型做比较 + var a = ((JsonElement) x["code"]!).GetString(); + var b = cur["code"]! + .ToString(); //tips: 需要要将object类型的字符串转为string类型,否则使用的是引用比较,反序列化出的string一定和本地string引用不同 + return a == b; + }) + .WhereIf(!compareFields.IsNullOrWhiteSpace(), x => + { + if (x["extra"] == null || log.Extra == null) return false; + return TextJsonHelper.EqByJsonElementField(x["extra"]!, + TextJsonHelper.Deserialize(log.Extra), compareFields!); + }) + .FirstOrDefault(); + + if (old != null) + { + body.Data.Remove(old); + } + } // 添加当前要推送的轨迹 body.Data.Add(cur);