列表的最新轨迹需要调整

This commit is contained in:
moyongzhen 2024-03-05 20:46:00 +08:00
parent 25e3172275
commit 317d59861a
4 changed files with 67 additions and 1 deletions

View File

@ -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);
}

View File

@ -114,5 +114,10 @@ namespace SJZY.Track.Domain.Dtos.Order
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
}
}

View File

@ -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())

View File

@ -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