fix: 修复通过EsId删除轨迹订单主表回退更新失败
This commit is contained in:
parent
ae011fb8fb
commit
42afc3d5a1
@ -178,27 +178,28 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
List<TrackDetailsIndex> deleteTracks;
|
List<TrackDetailsIndex> deleteTracks;
|
||||||
if (@event.EsIds != null && @event.EsIds.Any()) //根据明确的esid进行删除
|
if (@event.EsIds != null && @event.EsIds.Any()) //根据明确的esid进行删除
|
||||||
{
|
{
|
||||||
tracks = await _trackDetailsEsRepository.GetDataByIds(@event.EsIds);
|
deleteTracks = await _trackDetailsEsRepository.GetDataByIds(@event.EsIds);
|
||||||
orderIds = tracks.Select(m => m.OrderId).Distinct().ToList();
|
orderIds = deleteTracks.Select(m => m.OrderId).Distinct().ToList();
|
||||||
@event.OrderIds = orderIds.ToArray();
|
@event.OrderIds = orderIds.ToArray();
|
||||||
@event.TrackIdentifiers = tracks.Select(x => new TrackIdentifierDto
|
@event.TrackIdentifiers = deleteTracks.Select(x => new TrackIdentifierDto
|
||||||
{
|
{
|
||||||
TrackCode = x.TrackCode,
|
TrackCode = x.TrackCode,
|
||||||
TrackTime = x.TrackTime
|
TrackTime = x.TrackTime
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
// 外部api获取的轨迹不允许删除
|
// 外部api获取的轨迹不允许删除
|
||||||
if (tracks.Any(m => m.Source == TrackSourceEnum.ExternalServiceProvide.GetHashCode()))
|
if (deleteTracks.Any(m => m.Source == TrackSourceEnum.ExternalServiceProvide.GetHashCode()))
|
||||||
return tracks;
|
return deleteTracks;
|
||||||
|
|
||||||
|
//查出订单下的所有轨迹,以供后面回退使用
|
||||||
|
tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds);
|
||||||
|
|
||||||
// 删除轨迹
|
// 删除轨迹
|
||||||
foreach (var item in tracks)
|
foreach (var item in deleteTracks)
|
||||||
{
|
{
|
||||||
await _trackDetailsEsRepository.DeleteTrackByIdAsync(item.Id, item.IndexName);
|
await _trackDetailsEsRepository.DeleteTrackByIdAsync(item.Id, item.IndexName);
|
||||||
}
|
}
|
||||||
|
|
||||||
//已经删除的轨迹
|
|
||||||
deleteTracks = tracks;
|
|
||||||
//清理已经删除过的esid
|
//清理已经删除过的esid
|
||||||
@event.EsIds = Array.Empty<string>();
|
@event.EsIds = Array.Empty<string>();
|
||||||
}
|
}
|
||||||
@ -208,9 +209,9 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds);
|
tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds);
|
||||||
|
|
||||||
//构建标识符集合
|
//构建标识符集合
|
||||||
var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime}").ToList();
|
var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime:G}").ToList();
|
||||||
//根据标识符选出要删除的轨迹明细
|
//根据标识符选出要删除的轨迹明细
|
||||||
deleteTracks = tracks.Where(x => ids.Contains($"{x.TrackCode}{x.TrackTime}")).ToList();
|
deleteTracks = tracks.Where(x => ids.Contains($"{x.TrackCode}{x.TrackTime:G}")).ToList();
|
||||||
|
|
||||||
if (deleteTracks.Count == 0) return deleteTracks;
|
if (deleteTracks.Count == 0) return deleteTracks;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user