diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs
index fbfeef37..4476f53f 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs
@@ -34,9 +34,4 @@ public enum SortMethod
/// 按轨迹发生时间降序
///
ByTrackTimeDesc,
-
- ///
- /// 按订单模板排序
- ///
- ByTemplate
}
diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs
index feaf64f9..72df17e3 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs
@@ -17,6 +17,19 @@ public class TrackDetail
public string? Content { get; set; }
public string? OriginContent { get; set; }
public string Location { get; set; } = null!;
+
+ ///
+ /// 发生时间
+ ///
public DateTime Time { get; set; }
+
+ ///
+ /// 轨迹时区
+ ///
public float? TimeZone { get; set; }
+
+ ///
+ /// 是否对外
+ ///
+ public bool IsDisplay { get; set; }
}
diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs
index e5bb28c6..19db347d 100644
--- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs
+++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs
@@ -1,6 +1,7 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Consts;
+using SJZY.UserCenter.HttpApi.Services;
namespace SJZY.Track.Application.Services.ProvideServices;
@@ -25,11 +26,32 @@ public partial class TrackService
throw new BusinessException(message: "最多只能查询500单");
}
+ var subSystemId = CurrentUserRequest.SubSystemId;
+
var res = new List();
input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空
var details = await _trackDetailsRepository.GetListAsync(input.OrderType, input.OrderNos);
+ // 是否对外
+ var trackCodes = details.Select(x => x.TrackCode)
+ .Where(x => x != GlobalConst.EmptyString)
+ .Distinct()
+ .ToList();
+
+ var trackContentDic = new Dictionary();
+ if (!trackCodes.IsNullOrEmpty())
+ {
+ var trackContents = await _trackContentRepository.GetListAsync(x =>
+ x.SubSystemId == subSystemId && trackCodes.Contains(x.Code),
+ x => new
+ {
+ x.Code,
+ x.IsExternal
+ });
+ trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal));
+ }
+
foreach (var group in details.GroupBy(x => x.OrderId))
{
var item = new GetTrackOutput();
@@ -48,12 +70,14 @@ public partial class TrackService
: x.ZeroTrackTime.AddHours(input.TimeZone ?? 8),
TimeZone = Math.Abs(x.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1
? null
- : input.TimeZone ?? 8
+ : input.TimeZone ?? 8,
+ IsDisplay = trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal
}).ToList();
res.Add(item);
}
+ // 排序
TracksOrdered(res, input);
return new UnifyResultDto>(true, res, "操作成功");
@@ -70,8 +94,6 @@ public partial class TrackService
case SortMethod.ByTrackTimeDesc:
list.ForEach(item => item.TrackDetails.Sort((a, b) => b.Time.CompareTo(a.Time)));
break;
- case SortMethod.ByTemplate:
- break;
default:
throw new ArgumentOutOfRangeException(nameof(input.SortMethod), input.SortMethod, "不支持的排序方式");
}
diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs
index 3edb1e64..1ce25fd7 100644
--- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs
+++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs
@@ -3,9 +3,9 @@ using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Application.Contract.Services;
using SJZY.Track.Domain.Aggregates.OrderAggregate;
+using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Consts;
-using SJZY.Track.Domain.Queries;
using SJZY.UserCenter.HttpApi.Services;
using Volo.Abp.Http.Client.DynamicProxying;
@@ -20,17 +20,16 @@ public partial class TrackService : ApplicationService, ITrackService
{
private readonly ICapPublisher _capPublisher;
private readonly IOrderRepository _orderRepository;
- private readonly IProvideQueries _provideQueries;
private readonly IHttpClientProxy _requestCurrentUserService;
+ private readonly ITrackContentRepository _trackContentRepository;
- public TrackService(IOrderRepository orderRepository, IProvideQueries provideQueries, ICapPublisher capPublisher,
- ITrackDetailsRepository trackDetailsRepository,
+ public TrackService(IOrderRepository orderRepository, ICapPublisher capPublisher,
+ ITrackDetailsRepository trackDetailsRepository, ITrackContentRepository trackContentRepository,
IHttpClientProxy requestCurrentUserService)
{
_orderRepository = orderRepository;
- _provideQueries = provideQueries;
- _provideQueries = provideQueries;
_capPublisher = capPublisher;
+ _trackContentRepository = trackContentRepository;
_requestCurrentUserService = requestCurrentUserService;
_trackDetailsRepository = trackDetailsRepository;
}