add-params:中台获取轨迹明细接口,增加排序参数
update-interface:Track/Query,Track/QueryV2 - 增加支持按创建时间升序降序
This commit is contained in:
parent
581de918bc
commit
80ee762f06
@ -70,7 +70,7 @@ public class TrackOrderDetailDto
|
||||
/// <summary>
|
||||
/// 轨迹发生时间
|
||||
/// </summary>
|
||||
public DateTime? TrackTime { get; set; }
|
||||
public DateTime TrackTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹发生时区
|
||||
|
||||
@ -33,7 +33,7 @@ public class GetTrackInputV2 : OrderNosInfo
|
||||
public enum SortMethod
|
||||
{
|
||||
/// <summary>
|
||||
/// 按轨迹发生时间排序
|
||||
/// 按轨迹发生时间升序
|
||||
/// </summary>
|
||||
ByTrackTime = 0,
|
||||
|
||||
@ -43,12 +43,22 @@ public enum SortMethod
|
||||
ByTrackTimeDesc = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 模板排序+轨迹发生时间
|
||||
/// 模板排序+轨迹发生时间升序
|
||||
/// </summary>
|
||||
ByTemplateAndTrackTime = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 模板排序+轨迹发生时间
|
||||
/// </summary>
|
||||
ByTemplateAndTrackTimeDesc = 3
|
||||
ByTemplateAndTrackTimeDesc = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 按创建时间升序
|
||||
/// </summary>
|
||||
ByCreateTime = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 按创建时间降序
|
||||
/// </summary>
|
||||
ByCreateTimeDesc = 5
|
||||
}
|
||||
|
||||
@ -114,4 +114,9 @@ public class TrackDetail
|
||||
/// 扩展信息字段,用与轨迹推送的附加字段
|
||||
/// </summary>
|
||||
public string? Extra { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹创建时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
}
|
||||
|
||||
@ -88,7 +88,8 @@ public partial class TrackService
|
||||
TrackPlacePostcode = x.TrackPlacePostcode,
|
||||
DestinationTimeZone = x.DestinationTimeZone,
|
||||
EstimatedDeliveryDate = x.EstimatedDeliveryDate,
|
||||
Extra = x.Extra
|
||||
Extra = x.Extra,
|
||||
CreateTime = x.CreateTime
|
||||
}).ToList();
|
||||
|
||||
res.Add(item);
|
||||
@ -166,7 +167,8 @@ public partial class TrackService
|
||||
TrackPlacePostcode = x.TrackPlacePostcode,
|
||||
DestinationTimeZone = x.DestinationTimeZone,
|
||||
EstimatedDeliveryDate = x.EstimatedDeliveryDate,
|
||||
Extra = x.Extra
|
||||
Extra = x.Extra,
|
||||
CreateTime = x.CreateTime,
|
||||
}).ToList();
|
||||
|
||||
res.Add(item);
|
||||
@ -209,6 +211,12 @@ public partial class TrackService
|
||||
case SortMethod.ByTemplateAndTrackTimeDesc:
|
||||
list.ForEach(item => item.TrackDetails.Sort((a, b) => DateTimeHelper.ConvertUtc0Compare(b.Time, b.TimeZone ?? 8, a.Time, a.TimeZone ?? 8)));
|
||||
break;
|
||||
case SortMethod.ByCreateTime:
|
||||
list.ForEach(item => item.TrackDetails.Sort((a, b) => a.CreateTime.CompareTo(b.CreateTime)));
|
||||
break;
|
||||
case SortMethod.ByCreateTimeDesc:
|
||||
list.ForEach(item => item.TrackDetails.Sort((a, b) => b.CreateTime.CompareTo(a.CreateTime)));
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(sortMethod), sortMethod, "不支持的排序方式");
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ using System.Linq.Expressions;
|
||||
using SJZY.Expand.AliyunOSS;
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
using SJZY.Track.Application.Helpers;
|
||||
using SJZY.Track.Application.Services.Warning.Handlers;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
||||
@ -134,9 +135,10 @@ public class TrackOrderService : ApplicationService
|
||||
/// <param name="orderId"></param>
|
||||
/// <param name="orderNo"></param>
|
||||
/// <param name="systemId"></param>
|
||||
/// <param name="sortMethod"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("GetDetails")]
|
||||
public async Task<List<TrackOrderDetailDto>> GetTracksAsync(int? orderId, string? orderNo, int? systemId)
|
||||
public async Task<List<TrackOrderDetailDto>> GetTracksAsync(int? orderId, string? orderNo, int? systemId, SortMethod sortMethod = SortMethod.ByCreateTimeDesc)
|
||||
{
|
||||
Expression<Func<OrderEntity, bool>>? whereExpression = null;
|
||||
//根据订单id查询
|
||||
@ -186,6 +188,29 @@ public class TrackOrderService : ApplicationService
|
||||
a.TrackTimeZone = $"GMT {flag}{timeZoneStr.RemovePostFix(":00")}";
|
||||
}
|
||||
});
|
||||
|
||||
// 排序
|
||||
switch (sortMethod)
|
||||
{
|
||||
case SortMethod.ByTrackTime:
|
||||
list.Sort((a, b) => DateTimeHelper.ConvertUtc0Compare(a.TrackTime, a.TrackTimeZoneValue, b.TrackTime, b.TrackTimeZoneValue));
|
||||
break;
|
||||
case SortMethod.ByTrackTimeDesc:
|
||||
list.Sort((a, b) => DateTimeHelper.ConvertUtc0Compare(b.TrackTime, b.TrackTimeZoneValue, a.TrackTime, a.TrackTimeZoneValue));
|
||||
break;
|
||||
case SortMethod.ByTemplateAndTrackTime:
|
||||
case SortMethod.ByTemplateAndTrackTimeDesc:
|
||||
throw new BusinessException(message: "该接口暂不支持该模板排序方式,如需支持请联系轨迹中台负责人");
|
||||
case SortMethod.ByCreateTime:
|
||||
list.Sort((a, b) => a.CreateTime.CompareTo(b.CreateTime));
|
||||
break;
|
||||
case SortMethod.ByCreateTimeDesc:
|
||||
list.Sort((a, b) => b.CreateTime.CompareTo(a.CreateTime));
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(sortMethod), sortMethod, null);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user