列表的最新轨迹需要调整
This commit is contained in:
parent
25e3172275
commit
317d59861a
@ -20,4 +20,5 @@ public interface ITrackDetailsRepository
|
||||
/// <param name="trackCodes"></param>
|
||||
/// <returns></returns>
|
||||
Task DeleteTrackAsync(int orderId, List<string> trackCodes);
|
||||
Task<List<TrackDetailsIndex>?> GetListAsync(List<int> orderIds);
|
||||
}
|
||||
@ -114,5 +114,10 @@ namespace SJZY.Track.Domain.Dtos.Order
|
||||
/// 子系统
|
||||
/// </summary>
|
||||
public string SubSystem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 子系统id
|
||||
/// </summary>
|
||||
public int SubSystemId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using SJZY.Track.Domain;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
@ -9,6 +10,15 @@ namespace SJZY.Track.Repository.Repositories;
|
||||
|
||||
public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, ITransientDependency
|
||||
{
|
||||
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
||||
|
||||
public OrderRepository(
|
||||
ITrackDetailsRepository trackDetailsRepository
|
||||
)
|
||||
{
|
||||
this._trackDetailsRepository=trackDetailsRepository;
|
||||
}
|
||||
|
||||
public async Task CreateOrderAsync(OrderEntity order)
|
||||
{
|
||||
using var tran = TransactionHelper.GetReadCommitted();
|
||||
@ -147,10 +157,48 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
||||
NewestTrackTime = a.LatestTrackTime,
|
||||
IsFinish = a.IsCompleted,
|
||||
CreateTime = a.CreateTime,
|
||||
SubSystem = c.CnName
|
||||
SubSystem = c.CnName,
|
||||
SubSystemId = c.Id
|
||||
})
|
||||
.ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||
|
||||
if (pageList.List.Any())
|
||||
{
|
||||
//查询也需要最新的轨迹
|
||||
var orderIds = pageList.List.Select(a => a.Id).ToList();
|
||||
var esTrackDetails = await _trackDetailsRepository.GetListAsync(orderIds);
|
||||
if (!esTrackDetails.IsNullOrEmpty())
|
||||
{
|
||||
pageList.List.ForEach(a =>
|
||||
{
|
||||
var esDetails = esTrackDetails.Where(a => a.OrderId== a.OrderId).OrderByDescending(a => a.TrackTime);
|
||||
var trackDetail = esDetails.FirstOrDefault();
|
||||
if (trackDetail!=null)
|
||||
{
|
||||
if (trackDetail.TrackContent!=a.NewestTrackContent)
|
||||
{
|
||||
a.NewestTrackContent=trackDetail.TrackContent;
|
||||
}
|
||||
if (trackDetail.TrackEnContent!=a.NewestTrackEnContent)
|
||||
{
|
||||
a.NewestTrackContent=trackDetail.TrackEnContent;
|
||||
}
|
||||
if (trackDetail.TrackPlace!=a.NewestTrackPlace)
|
||||
{
|
||||
a.NewestTrackPlace=trackDetail.TrackPlace;
|
||||
}
|
||||
if (trackDetail.TrackTime!= trackDetail.TrackTime)
|
||||
{
|
||||
a.NewestTrackTime=trackDetail.TrackTime;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#region 暂时注释
|
||||
|
||||
//if (pageList.List.Any())
|
||||
|
||||
@ -3,6 +3,7 @@ using SJZY.Expand.ABP.Core.Logger;
|
||||
using SJZY.Expand.ElasticSearch.Services;
|
||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||
using SJZY.Track.Domain.Dtos.TrackDetails;
|
||||
using SJZY.UserCenter.SharedModel.Dtos.PHP.User;
|
||||
|
||||
namespace SJZY.Track.Repository.Repositories;
|
||||
|
||||
@ -99,6 +100,17 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract<TrackDetail
|
||||
return data?.Documents?.ToList();
|
||||
}
|
||||
|
||||
public async Task<List<TrackDetailsIndex>?> GetListAsync(List<int> orderIds)
|
||||
{
|
||||
var data = await Context.SearchAsync<TrackDetailsIndex>(x => x.Query(q => q.Terms(t => t.Field(g => g.OrderId).Terms(orderIds))
|
||||
&& q.Term(a => a.Field(g => g.IsDeleted).Value(false))
|
||||
)
|
||||
.Size(100000)
|
||||
.Sort(s => s.Field(f => f.TrackTime, SortOrder.Descending)));
|
||||
|
||||
return data?.Documents?.ToList();
|
||||
}
|
||||
|
||||
public async Task DeleteTrackAsync(int orderId, List<string> trackCodes)
|
||||
{
|
||||
var r = await Context.UpdateByQueryAsync<TrackDetailsIndex>(x => x
|
||||
|
||||
Loading…
Reference in New Issue
Block a user