From a517eae81f8b58c0116db68f3a533447684bb862 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Mon, 13 Jan 2025 16:11:08 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E8=BD=A8=E8=BF=B9=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=BD=A8=E8=BF=B9=E5=85=A8=E9=87=8F=E6=8E=A8=E9=80=81?= =?UTF-8?q?=EF=BC=88=E6=9C=80=E6=96=B0=E8=BD=A8=E8=BF=B9=EF=BC=89=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=AF=94=E8=BE=83=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CAP/EventHandlers/TrackPushEventHandler.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs index a90592fe..d695a433 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs @@ -356,14 +356,22 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe body = DeserializeForTextJson(history.PushContent); if (config.IsAllPushWithLatest) { + //同code同比较字段保证唯一 var old = body!.Data - .Where(x => x["code"] == cur["code"]) - .WhereIf(!compareFields.IsNullOrWhiteSpace(), x => + .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 EqExtraByFieldForTextJson(x["extra"]!, DeserializeForTextJson(log.Extra)!, compareFields!); + return EqExtraByFieldForTextJson(x["extra"]!, DeserializeForTextJson(log.Extra), compareFields!); }) .FirstOrDefault(); + + if (old != null) { body.Data.Remove(old);