option:暂时容忍FBA修改时区只通过时间来匹配轨迹
This commit is contained in:
parent
1d854ba16d
commit
be4723569f
@ -295,6 +295,20 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
// tips:如果没传时区则使用+8兜底进行过滤
|
// tips:如果没传时区则使用+8兜底进行过滤
|
||||||
var timezone = Math.Abs(@event.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 0.01f ? 8.0f : @event.TrackTimeZone;
|
var timezone = Math.Abs(@event.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 0.01f ? 8.0f : @event.TrackTimeZone;
|
||||||
|
|
||||||
|
// todo-remove:为了照顾FBA老逻辑,暂时特殊处理一下
|
||||||
|
var trackFirst = tracks.First();
|
||||||
|
if (trackFirst.SubSystemId == 9517)
|
||||||
|
{
|
||||||
|
existTracks = @event.IsAdd
|
||||||
|
? tracks.Where(x => x.TrackTime == (@event.NewTrackTime ?? @event.TrackTime)).ToList()
|
||||||
|
: tracks.Where(x =>
|
||||||
|
x.TrackTime == @event.TrackTime
|
||||||
|
// 修改了时间,要校验修改后的时间是否存在
|
||||||
|
|| (@event.NewTrackTime != null && x.TrackTime == @event.NewTrackTime)
|
||||||
|
).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
// 根据时间过滤
|
// 根据时间过滤
|
||||||
existTracks = @event.IsAdd
|
existTracks = @event.IsAdd
|
||||||
? existTracks.Where(x => x.GetUtc0TrackTime() == (@event.NewTrackTime ?? @event.TrackTime).Subtract(TimeSpan.FromHours(timezone))).ToList()
|
? existTracks.Where(x => x.GetUtc0TrackTime() == (@event.NewTrackTime ?? @event.TrackTime).Subtract(TimeSpan.FromHours(timezone))).ToList()
|
||||||
@ -303,6 +317,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
// 修改了时间,要校验修改后的时间是否存在
|
// 修改了时间,要校验修改后的时间是否存在
|
||||||
|| (@event.NewTrackTime != null && x.GetUtc0TrackTime() == @event.NewTrackTime.Value.Subtract(TimeSpan.FromHours(timezone)))
|
|| (@event.NewTrackTime != null && x.GetUtc0TrackTime() == @event.NewTrackTime.Value.Subtract(TimeSpan.FromHours(timezone)))
|
||||||
).ToList();
|
).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
// 根据扩展信息过滤
|
// 根据扩展信息过滤
|
||||||
existTracks = @event.IsAdd
|
existTracks = @event.IsAdd
|
||||||
|
|||||||
@ -620,6 +620,24 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
// 如果不允许重复,则直接返回
|
// 如果不允许重复,则直接返回
|
||||||
if (!isRepeatable) return tracks;
|
if (!isRepeatable) return tracks;
|
||||||
|
|
||||||
|
// 没有任何轨迹,也直接返回
|
||||||
|
if (tracks.Count == 0)
|
||||||
|
return tracks;
|
||||||
|
|
||||||
|
// todo-remove:为了照顾FBA老逻辑,暂时特殊处理一下
|
||||||
|
var trackFirst = tracks.First();
|
||||||
|
if (trackFirst.SubSystemId == 9517)
|
||||||
|
{
|
||||||
|
tracks = isAdd
|
||||||
|
? tracks.Where(x => x.TrackTime == (newTrackTime ?? trackTime)).ToList()
|
||||||
|
: tracks.Where(x =>
|
||||||
|
x.TrackTime == trackTime
|
||||||
|
// 修改了时间,要校验修改后的时间是否存在
|
||||||
|
|| (newTrackTime != null && x.TrackTime == newTrackTime)
|
||||||
|
).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
tracks = isAdd
|
tracks = isAdd
|
||||||
? tracks.Where(x => x.GetUtc0TrackTime() == (newTrackTime ?? trackTime).Subtract(TimeSpan.FromHours(trackTimezone))).ToList()
|
? tracks.Where(x => x.GetUtc0TrackTime() == (newTrackTime ?? trackTime).Subtract(TimeSpan.FromHours(trackTimezone))).ToList()
|
||||||
: tracks.Where(x =>
|
: tracks.Where(x =>
|
||||||
@ -627,6 +645,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
// 修改了时间,要校验修改后的时间是否存在
|
// 修改了时间,要校验修改后的时间是否存在
|
||||||
|| (newTrackTime != null && x.GetUtc0TrackTime() == newTrackTime.Value.Subtract(TimeSpan.FromHours(trackTimezone)))
|
|| (newTrackTime != null && x.GetUtc0TrackTime() == newTrackTime.Value.Subtract(TimeSpan.FromHours(trackTimezone)))
|
||||||
).ToList();
|
).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
return isAdd
|
return isAdd
|
||||||
? tracks.Where(x => x.Extra == (newExtra ?? extra)).ToList()
|
? tracks.Where(x => x.Extra == (newExtra ?? extra)).ToList()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user