Merge pull request 'S06' (#74) from S06 into uat

Reviewed-on: https://git.shijizhongyun.com/Dotnet/SJZY.Track.Api/pulls/74
This commit is contained in:
xumengen_eli 2024-12-02 11:46:58 +08:00
commit 103e2f87dd
2 changed files with 36 additions and 13 deletions

View File

@ -60,7 +60,9 @@ public partial class TrackService : ApplicationService, ITrackService
throw new BusinessException(message: "轨迹来源是必须的"); throw new BusinessException(message: "轨迹来源是必须的");
} }
if (input.TrackTime < DateTime.Now.AddYears(-100) || input.TrackTime > DateTime.Now.AddYears(100)) //要求时间在当前时间的前后100年之间内
bool ValidateTrackTime(DateTime? d) => (d != null && d < DateTime.Now.AddYears(-100) || d > DateTime.Now.AddYears(100));
if (ValidateTrackTime(input.TrackTime) || ValidateTrackTime(input.NewTrackTime))
{ {
throw new BusinessException(message: "轨迹时间不合法"); throw new BusinessException(message: "轨迹时间不合法");
} }
@ -326,7 +328,9 @@ public partial class TrackService : ApplicationService, ITrackService
//【更新】存在指定轨迹的内容(匹配到多条则不处理) //【更新】存在指定轨迹的内容(匹配到多条则不处理)
var order = orders.First(); var order = orders.First();
if (input.TrackTime < DateTime.Now.AddYears(-100) || input.TrackTime > DateTime.Now.AddYears(100)) //要求时间在当前时间的前后100年之间内
bool ValidateTrackTime(DateTime? d) => (d != null && d < DateTime.Now.AddYears(-100) || d > DateTime.Now.AddYears(100));
if (ValidateTrackTime(input.TrackTime) || ValidateTrackTime(input.NewTrackTime))
{ {
throw new BusinessException(message: "轨迹时间不合法"); throw new BusinessException(message: "轨迹时间不合法");
} }

View File

@ -1,3 +1,4 @@
using System.Linq.Expressions;
using SJZY.Expand.AliyunOSS; using SJZY.Expand.AliyunOSS;
using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Application.Contract.Dtos.TrackOrder; using SJZY.Track.Application.Contract.Dtos.TrackOrder;
@ -108,17 +109,31 @@ public class TrackOrderService : ApplicationService
/// 根据订单id获取轨迹明细列表 /// 根据订单id获取轨迹明细列表
/// </summary> /// </summary>
/// <param name="orderId"></param> /// <param name="orderId"></param>
/// <param name="orderNo"></param>
/// <param name="systemId"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost("GetDetails")] [HttpPost("GetDetails")]
public async Task<List<TrackOrderDetailDto>> GetTracksAsync(int orderId) public async Task<List<TrackOrderDetailDto>> GetTracksAsync(int? orderId, string? orderNo, int? systemId)
{ {
var subSystemId = await _orderRepository.GetFirstAsync(x => x.Id == orderId, x => x.SubSystemId); Expression<Func<OrderEntity, bool>>? whereExpression = null;
//根据订单id查询
if (orderId != null && orderId > 0)
whereExpression = m => m.Id == orderId;
//根据订单号+系统id查询
if (!string.IsNullOrEmpty(orderNo) && systemId != null && systemId > 0)
whereExpression = m => m.OrderNo == orderNo && m.SubSystemId == systemId;
if (whereExpression == default)
throw new BusinessException(message: "请求参数异常");
var subSystemId = await _orderRepository.GetFirstAsync(whereExpression, x => x.SubSystemId);
if (subSystemId == default) if (subSystemId == default)
{ {
throw new BusinessException(message: "订单不存在"); throw new BusinessException(message: "订单不存在");
} }
var trackDetails = await _trackDetailsEsRepository.GetListAsync(orderId); var trackDetails = await _trackDetailsEsRepository.GetListAsync(orderId ?? 0);
if (trackDetails.IsNullOrEmpty()) if (trackDetails.IsNullOrEmpty())
{ {
return new List<TrackOrderDetailDto>(); return new List<TrackOrderDetailDto>();
@ -241,16 +256,20 @@ public class TrackOrderService : ApplicationService
if (!order.IsCompleted) //如果没完结则显示签收节点 if (!order.IsCompleted) //如果没完结则显示签收节点
{ {
var eddUnixTimestamp = order.EstimatedDeliveryDate.HasValue ? ToUnixTimestamp(DateTime.Parse(order.EstimatedDeliveryDate.ToString()!)) : 0; var eddUnixTimestamp = order.EstimatedDeliveryDate.HasValue ? ToUnixTimestamp(DateTime.Parse(order.EstimatedDeliveryDate.ToString()!)) : 0;
var isShowTime = eddUnixTimestamp > 0 && res.Data.All(m => m.TrackTime < eddUnixTimestamp);
var isShowTime = eddUnixTimestamp > 0 && res.Data != null && res.Data.All(m => m.TrackTime < eddUnixTimestamp); //当存在需要显示的轨迹才需要补充签收节点
res.Data.Add(new GetDetailTimelineOutput() if (res.Data.Count != 0)
{ {
Content = "签收", res.Data.Add(new GetDetailTimelineOutput()
IsHighlight = false, {
TrackTimeZone = isShowTime ? $"GMT{(order.DestinationTimeZone >= 0 ? "+" : "-")}{order.DestinationTimeZone}" : "", Content = "签收",
TrackTime = isShowTime ? eddUnixTimestamp : 0, IsHighlight = false,
TrackTimePrefix = isShowTime ? "预计签收时间:" : "", TrackTimeZone = isShowTime ? $"GMT{(order.DestinationTimeZone >= 0 ? "+" : "-")}{order.DestinationTimeZone}" : "",
}); TrackTime = isShowTime ? eddUnixTimestamp : 0,
TrackTimePrefix = isShowTime ? "预计签收时间:" : "",
});
}
} }
return res; return res;