fix:时间轴是否完结从订单上获取

This commit is contained in:
eli 2024-11-20 17:56:32 +08:00
parent 6ab5bbe1b1
commit a1986273c6

View File

@ -194,25 +194,17 @@ public class TrackOrderService : ApplicationService
if (system == null) if (system == null)
return new UnifyResultDto<List<GetDetailTimelineOutput>>(false, "未找到指定id的子系统"); return new UnifyResultDto<List<GetDetailTimelineOutput>>(false, "未找到指定id的子系统");
var trackStatus = await _trackStatusRepository.GetListAsync(m => m.SubSystemId == input.SystemId);
if (trackStatus == null)
return new UnifyResultDto<List<GetDetailTimelineOutput>>(false, "未找到子系统下的任何轨迹状态");
var trackContent = await _trackContentRepository.GetListAsync(m => m.SubSystemId == input.SystemId); var trackContent = await _trackContentRepository.GetListAsync(m => m.SubSystemId == input.SystemId);
if (trackContent == null) if (trackContent == null)
return new UnifyResultDto<List<GetDetailTimelineOutput>>(false, "未找到子系统下的任何轨迹内容"); return new UnifyResultDto<List<GetDetailTimelineOutput>>(false, "未找到子系统下的任何轨迹内容");
var trackDetails = await _trackDetailsEsRepository.GetListAsync(order.Id); var trackDetails = await _trackDetailsEsRepository.GetListAsync(order.Id);
res.Data = new List<GetDetailTimelineOutput>(); res.Data = new List<GetDetailTimelineOutput>();
var isCompleted = false;
foreach (var item in trackDetails) foreach (var item in trackDetails)
{ {
var currentTrackStatus = trackStatus.FirstOrDefault(m => m.Code == item.TrackStatusCode);
var currentTrackContet = trackContent.FirstOrDefault(m => m.Code == item.TrackCode); var currentTrackContet = trackContent.FirstOrDefault(m => m.Code == item.TrackCode);
//是否完结
if (!isCompleted)
isCompleted = currentTrackStatus is { IsCompleted: true };
//如果是外部系统,且轨迹内容不对外则跳过这条轨迹内容 //如果是外部系统,且轨迹内容不对外则跳过这条轨迹内容
if (system.SystemProperty == 2 && currentTrackContet != null && !currentTrackContet.IsExternal) if (system.SystemProperty == 2 && currentTrackContet != null && !currentTrackContet.IsExternal)
@ -244,7 +236,7 @@ public class TrackOrderService : ApplicationService
} }
//如果轨迹状态没完结则追加最后一个默认节点 //如果轨迹状态没完结则追加最后一个默认节点
if (!isCompleted) if (!order.IsCompleted)
{ {
res.Data.Add(new GetDetailTimelineOutput() res.Data.Add(new GetDetailTimelineOutput()
{ {