diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index 030eb361..9ddd0b87 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -297,14 +297,17 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe ? existTracks.Where(x => x.GetUtc0TrackTime() == (@event.NewTrackTime ?? @event.TrackTime).Subtract(TimeSpan.FromHours(timezone))).ToList() : existTracks.Where(x => x.GetUtc0TrackTime() == @event.TrackTime.Subtract(TimeSpan.FromHours(timezone)) - // 修改了并且修改了时间 + // 修改了时间,要校验修改后的时间是否存在 || (@event.NewTrackTime != null && x.GetUtc0TrackTime() == @event.NewTrackTime.Value.Subtract(TimeSpan.FromHours(timezone))) ).ToList(); // 根据扩展信息过滤 existTracks = @event.IsAdd ? existTracks.Where(x => x.Extra == (@event.NewExtra ?? @event.Extra)).ToList() - : existTracks.Where(x => x.Extra == @event.Extra || x.Extra == @event.NewExtra).ToList(); + : existTracks.Where(x => + x.Extra == @event.Extra + // 修改了extra,要校验修改后的extra是否存在 + || (!string.IsNullOrWhiteSpace(@event.NewExtra) && x.Extra == @event.NewExtra)).ToList(); if (@event.IsAdd) {