feat: return track status on detail timeline API

Expose TrackStatus/TrackStatusCode and highlight only the latest node for courier-style timeline UIs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zzh 2026-09-03 18:56:29 +08:00
parent 48064b4cb1
commit aa7d4b2c5f
2 changed files with 18 additions and 2 deletions

View File

@ -7,6 +7,16 @@ public class GetDetailTimelineOutput
/// </summary>
public string TrackCode { get; set; }
/// <summary>
/// 轨迹状态(如:已揽收、运输中、派送中、已签收)
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态 code
/// </summary>
public string TrackStatusCode { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>

View File

@ -223,7 +223,7 @@ public class TrackOrderService : ApplicationServiceBase
: item.TrackTime);
res.Add(new GetDetailTimelineOutput()
{
IsHighlight = true,
IsHighlight = false,
IsShowHover = true,
Remark = item.Remarks == null || item.Remarks == "--" ? "" : item.Remarks,
TrackTimeZone = $"GMT{(item.TrackTimeZone >= 0 ? "+" : "-")}{GetTimeZoneStr(item.TrackTimeZone)}",
@ -240,14 +240,20 @@ public class TrackOrderService : ApplicationServiceBase
}).ToList(),
Content = item.TrackContent,
TrackCode = item.TrackCode,
TrackStatus = item.TrackStatus,
TrackStatusCode = item.TrackStatusCode,
TrackPlaceNation = item.TrackPlaceNation,
TrackPlaceProvince = item.TrackPlaceProvince,
TrackPlaceCity = item.TrackPlaceCity,
});
}
// 按轨迹发生时间正序排序
// 按轨迹发生时间正序排序;最新一条高亮
res = res.OrderBy(m => m.TrackTime).ToList();
if (res.Count > 0)
{
res[^1].IsHighlight = true;
}
return res;
}