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, IOrderRepository, ITransientDependency { public async Task CreateOrderAsync(OrderEntity order) { return await Context.InsertNav(order) .Include(x => x.OrderFlights) .Include(x => x.OrderTemplates) .ExecuteCommandAsync(); } public async Task> GetOrderTemplatesAsync(int orderType, List distinctOrderNumbers) { return await AsQueryable() .LeftJoin((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 orderLinkEntities) { await Context.Insertable(orderLinkEntities).ExecuteCommandAsync(); } public async Task UnLinkByIdsAsync(List 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().Where(x => x.OrderId == order.Id).ExecuteCommandAsync(); order.OrderTemplates.ForEach(x => x.OrderId = order.Id); await Context.Insertable(order.OrderTemplates).ExecuteCommandAsync(); // 更新订单航班 await Context.Deleteable().Where(x => x.OrderId == order.Id).ExecuteCommandAsync(); order.OrderFlights.ForEach(x => x.OrderId = order.Id); await Context.Insertable(order.OrderFlights).ExecuteCommandAsync(); tran.Complete(); } #region 轨迹订单明细 /// /// 根据轨迹订单id获取轨迹明细列表 /// /// /// public async Task> GetOrderDetails(GetOrderDetailsInputVO input) { return null; } #endregion #region 轨迹订单分页 /// /// 获取分页的轨迹订单 /// /// /// public async Task> GetPageTrackOrder(GetPageTrackOrderInputVO input) { //await Context.Queryable((a,b)= ); return null; } #endregion }