88 lines
2.9 KiB
C#
88 lines
2.9 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using SJZY.Track.Domain;
|
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
|
using SJZY.Track.Domain.Dtos.Order;
|
|
|
|
namespace SJZY.Track.Repository;
|
|
|
|
public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, ITransientDependency
|
|
{
|
|
public async Task<bool> CreateOrderAsync(OrderEntity order)
|
|
{
|
|
return await Context.InsertNav(order)
|
|
.Include(x => x.OrderFlights)
|
|
.Include(x => x.OrderTemplates)
|
|
.ExecuteCommandAsync();
|
|
}
|
|
|
|
public async Task<List<OrderTemplateDto>> GetOrderTemplatesAsync(int orderType,
|
|
List<string> distinctOrderNumbers)
|
|
{
|
|
return await AsQueryable()
|
|
.LeftJoin<OrderTemplateEntity>((a, b) => a.Id == b.OrderId)
|
|
.Where(a => a.OrderType == orderType && distinctOrderNumbers.Contains(a.OrderNo))
|
|
.Select((a, b) => new OrderTemplateDto
|
|
{
|
|
OrderNo = a.OrderNo,
|
|
TemplateId = b.TrackTemplateId
|
|
})
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task LinkOrderAsync(List<OrderLinkEntity> orderLinkEntities)
|
|
{
|
|
await Context.Insertable(orderLinkEntities).ExecuteCommandAsync();
|
|
}
|
|
|
|
public async Task UnLinkByIdsAsync(List<int> linkIds)
|
|
{
|
|
await Context.Deleteable(linkIds).ExecuteCommandAsync();
|
|
}
|
|
|
|
public async Task UpdateOrderAsync(OrderEntity order)
|
|
{
|
|
using var tran = TransactionHelper.GetReadCommitted();
|
|
|
|
// 更新订单主表
|
|
await UpdateAsync(order, x => new { x.CustomId, x.SubSystemId });
|
|
|
|
// 更新订单模板
|
|
await Context.Deleteable<OrderTemplateEntity>().Where(x => x.OrderId == order.Id).ExecuteCommandAsync();
|
|
order.OrderTemplates.ForEach(x => x.OrderId = order.Id);
|
|
await Context.Insertable(order.OrderTemplates).ExecuteCommandAsync();
|
|
|
|
// 更新订单航班
|
|
await Context.Deleteable<OrderFlightEntity>().Where(x => x.OrderId == order.Id).ExecuteCommandAsync();
|
|
order.OrderFlights.ForEach(x => x.OrderId = order.Id);
|
|
await Context.Insertable(order.OrderFlights).ExecuteCommandAsync();
|
|
|
|
tran.Complete();
|
|
}
|
|
|
|
#region 轨迹订单明细
|
|
|
|
/// <summary>
|
|
/// 根据轨迹订单id获取轨迹明细列表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
public async Task<List<TrackOrderDetailVO>> GetOrderDetails(GetOrderDetailsInputVO input)
|
|
{
|
|
return null;
|
|
}
|
|
#endregion
|
|
|
|
#region 轨迹订单分页
|
|
/// <summary>
|
|
/// 获取分页的轨迹订单
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
public async Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input)
|
|
{
|
|
//await Context.Queryable<OrderEntity, OrderTemplateEntity>((a,b)= );
|
|
|
|
return null;
|
|
}
|
|
#endregion
|
|
} |