update: 支持数据来源为【外部服务商轨迹】明细的修改,并保证轨迹发生地,轨迹发生时间,轨迹发生时区不被更改

This commit is contained in:
云龙 王 2024-11-22 14:51:15 +08:00
parent 18c5119cde
commit e07fc810c1
2 changed files with 9 additions and 5 deletions

View File

@ -49,6 +49,7 @@ public class BatchUpsertTrackInput : OrderNosInfo
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// 批量新增时使用指定轨迹来源,更新时无需指定
/// </summary>
[Required]
public int Source { get; set; }

View File

@ -298,8 +298,6 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
if (track == null) continue; // 不存在不让改
//来源与外部服务商不允许修改
if (track.Source == (int) TrackSourceEnum.ExternalServiceProvide) continue;
}
else
{
@ -398,9 +396,14 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
}
else
{
track.TrackPlace = @event.TrackPlace;
track.TrackTime = @event.NewTrackTime ?? @event.TrackTime;
track.TrackTimeZone = @event.TrackTimeZone;
//外部轨迹,轨迹发生地,轨迹发生时间,轨迹发生时区,不允许更改
if (track.Source != (int) TrackSourceEnum.ExternalServiceProvide)
{
track.TrackPlace = @event.TrackPlace;
track.TrackTime = @event.NewTrackTime ?? @event.TrackTime;
track.TrackTimeZone = @event.TrackTimeZone;
}
track.ZeroTrackTime = Math.Abs(track.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1
? track.TrackTime
: track.TrackTime.Subtract(TimeSpan.FromHours(track.TrackTimeZone));