【 5. 轨迹订单拉取配置】
https://www.tapd.cn/60863849/prong/tasks/view/1160863849001027889
This commit is contained in:
parent
f2a873a387
commit
bbc9b3c754
@ -70,7 +70,7 @@ public class UpdateOrderInput : OrderNoInfo
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 拉取配置信息
|
/// 拉取配置信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<PullConfigInfo> PullConfigInfos { get; set; }
|
public List<PullConfigInfo>? PullConfigInfos { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PullConfigInfo
|
public class PullConfigInfo
|
||||||
|
|||||||
@ -11,21 +11,6 @@ public class UpsertOrderInput : UpdateOrderInput
|
|||||||
public int CustomId { get; set; }
|
public int CustomId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class OrderTemplateInfo
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 模板id
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(1, Int32.MaxValue)]
|
|
||||||
public int TemplateId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 服务商id
|
|
||||||
/// </summary>
|
|
||||||
public int? ServiceProviderId { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class OrderFlightInfo
|
public class OrderFlightInfo
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -18,9 +18,6 @@ public class OrderAutoMapperProfile : Profile
|
|||||||
CreateMap<UpsertOrderInput, OrderEntity>(MemberList.None);
|
CreateMap<UpsertOrderInput, OrderEntity>(MemberList.None);
|
||||||
CreateMap<UpdateOrderInput, OrderEntity>(MemberList.None);
|
CreateMap<UpdateOrderInput, OrderEntity>(MemberList.None);
|
||||||
|
|
||||||
CreateMap<OrderTemplateInfo, OrderTemplateEntity>(MemberList.None)
|
|
||||||
.ForMember(dest => dest.ServiceProviderId, opt => opt.MapFrom(m => m.ServiceProviderId ?? 0))
|
|
||||||
.ForMember(dest => dest.TrackTemplateId, opt => opt.MapFrom(m => m.TemplateId));
|
|
||||||
CreateMap<OrderFlightInfo, OrderFlightEntity>(MemberList.None);
|
CreateMap<OrderFlightInfo, OrderFlightEntity>(MemberList.None);
|
||||||
|
|
||||||
CreateMap<GetPageTrackOrderInput, GetPageTrackOrderInputVO>(MemberList.None);
|
CreateMap<GetPageTrackOrderInput, GetPageTrackOrderInputVO>(MemberList.None);
|
||||||
|
|||||||
@ -4,7 +4,6 @@ using SJZY.Track.Application.Contract.Events;
|
|||||||
using SJZY.Track.Application.Contract.Services;
|
using SJZY.Track.Application.Contract.Services;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
using SJZY.Track.Domain.Consts;
|
using SJZY.Track.Domain.Consts;
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
|
||||||
using SJZY.Track.Domain.Queries;
|
using SJZY.Track.Domain.Queries;
|
||||||
using Volo.Abp.DependencyInjection;
|
using Volo.Abp.DependencyInjection;
|
||||||
|
|
||||||
@ -35,7 +34,6 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
if (orders.Count == 0) return;
|
if (orders.Count == 0) return;
|
||||||
|
|
||||||
var updateOrders = new List<OrderEntity>();
|
var updateOrders = new List<OrderEntity>();
|
||||||
var providerDic = await GetProviderDic(@event.OrderIds);
|
|
||||||
foreach (var order in orders)
|
foreach (var order in orders)
|
||||||
{
|
{
|
||||||
if (order.LatestTrackContent != @event.TrackContent)
|
if (order.LatestTrackContent != @event.TrackContent)
|
||||||
@ -59,20 +57,6 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
order.IsCompleted = @event.IsCompleted;
|
order.IsCompleted = @event.IsCompleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(@event.TrackCode) && providerDic.TryGetValue(order.Id, out var provider))
|
|
||||||
{
|
|
||||||
var config =
|
|
||||||
await _trackPullCacheService.GetPullParamsWithContentAsync(provider.SubSystemId,
|
|
||||||
provider.ServiceProviderId);
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(config?.ParamConfig.TrackContentCode) &&
|
|
||||||
config.ParamConfig.TrackContentCode!.ToLower() == @event.TrackCode.ToLower())
|
|
||||||
{
|
|
||||||
// 触发拉取节点
|
|
||||||
order.IsTriggerPull = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
order.LatestTrackContent = @event.TrackContent;
|
order.LatestTrackContent = @event.TrackContent;
|
||||||
order.LatestTrackEnContent = @event.TrackEnContent;
|
order.LatestTrackEnContent = @event.TrackEnContent;
|
||||||
order.LatestTrackPlace = @event.TrackPlace;
|
order.LatestTrackPlace = @event.TrackPlace;
|
||||||
@ -90,7 +74,6 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
x.LatestTrackPlace,
|
x.LatestTrackPlace,
|
||||||
x.LatestTrackTime,
|
x.LatestTrackTime,
|
||||||
x.LatestTrackTimeZone,
|
x.LatestTrackTimeZone,
|
||||||
x.IsTriggerPull,
|
|
||||||
x.DeficiencyTag
|
x.DeficiencyTag
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -122,7 +105,6 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
IsTransit = order.IsTransit,
|
IsTransit = order.IsTransit,
|
||||||
LeavePort = order.LeavePort,
|
LeavePort = order.LeavePort,
|
||||||
ProductCode = order.ProductCode,
|
ProductCode = order.ProductCode,
|
||||||
IsTriggerPull = order.IsTriggerPull
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,16 +131,4 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
}).ToList()
|
}).ToList()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取服务商字典
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="orderIds"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
private async Task<Dictionary<int, OrderTransportDto>> GetProviderDic(int[] orderIds)
|
|
||||||
{
|
|
||||||
var providerList = await _provideQueries.FindOrderWithServiceProviderAsync(orderIds);
|
|
||||||
return providerList.GroupBy(val => val.OrderId)
|
|
||||||
.ToDictionary(val => val.Key, val => val.First());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
|||||||
using SJZY.Track.Application.Contract.Services;
|
using SJZY.Track.Application.Contract.Services;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
|
using SJZY.Track.Domain.Consts;
|
||||||
using SJZY.Track.Domain.Queries;
|
using SJZY.Track.Domain.Queries;
|
||||||
using SJZY.UserCenter.HttpApi.Services;
|
using SJZY.UserCenter.HttpApi.Services;
|
||||||
|
|
||||||
@ -67,8 +68,11 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
order = ObjectMapper.Map<UpsertOrderInput, OrderEntity>(input);
|
order = ObjectMapper.Map<UpsertOrderInput, OrderEntity>(input);
|
||||||
order.SubSystemId = subSystemId;
|
order.SubSystemId = subSystemId;
|
||||||
order.OrderFlights = ObjectMapper.Map<List<OrderFlightInfo>, List<OrderFlightEntity>>(input.FlightInfos);
|
order.OrderFlights = ObjectMapper.Map<List<OrderFlightInfo>, List<OrderFlightEntity>>(input.FlightInfos);
|
||||||
|
order.OrderPullStatus = BuiltOrderPullStatus(input.PullConfigInfos);
|
||||||
|
|
||||||
var orderId = await _orderRepository.CreateOrderAsync(order);
|
var orderId = await _orderRepository.CreateOrderAsync(order);
|
||||||
|
|
||||||
|
// 写入操作日志
|
||||||
var indexForAdd = new OrderOperationRecordIndex
|
var indexForAdd = new OrderOperationRecordIndex
|
||||||
{
|
{
|
||||||
OrderId = orderId,
|
OrderId = orderId,
|
||||||
@ -78,9 +82,9 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
CreateUserId = CurrentUserRequest.CurrentUser.UserId,
|
CreateUserId = CurrentUserRequest.CurrentUser.UserId,
|
||||||
CreateTime = DateTime.Now
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
|
|
||||||
_ = _orderOperationRecordRepository.AddAsync(indexForAdd);
|
_ = _orderOperationRecordRepository.AddAsync(indexForAdd);
|
||||||
|
|
||||||
|
|
||||||
return new UnifyResultDto<IdBaseDto>(true, new IdBaseDto
|
return new UnifyResultDto<IdBaseDto>(true, new IdBaseDto
|
||||||
{
|
{
|
||||||
Id = orderId
|
Id = orderId
|
||||||
@ -118,4 +122,22 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
order.OrderFlights = ObjectMapper.Map<List<OrderFlightInfo>, List<OrderFlightEntity>>(input.FlightInfos);
|
order.OrderFlights = ObjectMapper.Map<List<OrderFlightInfo>, List<OrderFlightEntity>>(input.FlightInfos);
|
||||||
await _orderRepository.UpdateOrderAsync(order);
|
await _orderRepository.UpdateOrderAsync(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<OrderPullStatusEntity> BuiltOrderPullStatus(List<PullConfigInfo>? pullConfigInfos)
|
||||||
|
{
|
||||||
|
if (pullConfigInfos == null) return new List<OrderPullStatusEntity>();
|
||||||
|
|
||||||
|
return pullConfigInfos.Select(x => new OrderPullStatusEntity
|
||||||
|
{
|
||||||
|
ServiceProviderCode = x.ServiceCode,
|
||||||
|
PullStatus = TrackPullStatus.Init,
|
||||||
|
StartTrackCode = x.StartCode ?? GlobalConst.EmptyString,
|
||||||
|
EndTrackCode = x.EndCode ?? GlobalConst.EmptyString,
|
||||||
|
SilenceBeforeStart = x.SilenceTime,
|
||||||
|
SilenceAfterEnd = x.StopTime,
|
||||||
|
StartTime = DateTime.MaxValue,
|
||||||
|
EndTime = DateTime.MaxValue,
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,11 +54,9 @@ public class TrackPullService : ApplicationService
|
|||||||
throw new BusinessException(message: "一个能更新的都没有");
|
throw new BusinessException(message: "一个能更新的都没有");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach (var group in orders.GroupBy(x =>
|
foreach (var group in orders.GroupBy(x =>
|
||||||
new
|
new
|
||||||
{
|
{
|
||||||
x.ServiceProviderId,
|
|
||||||
x.ServiceProviderName,
|
x.ServiceProviderName,
|
||||||
x.SubSystemId,
|
x.SubSystemId,
|
||||||
x.OrderType
|
x.OrderType
|
||||||
|
|||||||
@ -6,8 +6,6 @@ using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
|||||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||||
using SJZY.Track.Domain.Consts;
|
using SJZY.Track.Domain.Consts;
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
using SJZY.Track.Domain.Dtos.Order;
|
||||||
using SJZY.Track.Domain.Enums;
|
|
||||||
using SJZY.Track.Domain.Queries;
|
|
||||||
|
|
||||||
namespace SJZY.Track.Application.Services.TrackOrders;
|
namespace SJZY.Track.Application.Services.TrackOrders;
|
||||||
|
|
||||||
@ -19,19 +17,16 @@ public class TrackOrderService : ApplicationService
|
|||||||
private readonly IOrderRepository _orderRepository;
|
private readonly IOrderRepository _orderRepository;
|
||||||
private readonly ITrackContentRepository _trackContentRepository;
|
private readonly ITrackContentRepository _trackContentRepository;
|
||||||
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
||||||
private readonly ITrackOrderQueries _trackOrderQueries;
|
|
||||||
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
|
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
|
||||||
|
|
||||||
public TrackOrderService(
|
public TrackOrderService(
|
||||||
IOrderRepository orderRepository,
|
IOrderRepository orderRepository,
|
||||||
ITrackOrderQueries trackOrderQueries,
|
|
||||||
ITrackDetailsRepository trackDetailsRepository,
|
ITrackDetailsRepository trackDetailsRepository,
|
||||||
ITrackContentRepository trackContentRepository,
|
ITrackContentRepository trackContentRepository,
|
||||||
ITrackPushRecordsRepository trackPushRecordsRepository,
|
ITrackPushRecordsRepository trackPushRecordsRepository,
|
||||||
IOrderOperationRecordRepository orderOperationRecordRepository)
|
IOrderOperationRecordRepository orderOperationRecordRepository)
|
||||||
{
|
{
|
||||||
_orderRepository = orderRepository;
|
_orderRepository = orderRepository;
|
||||||
_trackOrderQueries = trackOrderQueries;
|
|
||||||
_trackDetailsRepository = trackDetailsRepository;
|
_trackDetailsRepository = trackDetailsRepository;
|
||||||
_trackContentRepository = trackContentRepository;
|
_trackContentRepository = trackContentRepository;
|
||||||
_trackPushRecordsRepository = trackPushRecordsRepository;
|
_trackPushRecordsRepository = trackPushRecordsRepository;
|
||||||
@ -46,10 +41,10 @@ public class TrackOrderService : ApplicationService
|
|||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost("GetTrackOrderList")]
|
[HttpPost("GetTrackOrderList")]
|
||||||
public async Task<UnifyPageResultDto<TrackOrderDto>> GetPageTrackOrder(GetPageTrackOrderInput input)
|
public async Task<UnifyPageResultDto<TrackOrderDto>> GetTrackOrderPagedList(GetPageTrackOrderInput input)
|
||||||
{
|
{
|
||||||
var vo = ObjectMapper.Map<GetPageTrackOrderInput, GetPageTrackOrderInputVO>(input);
|
var vo = ObjectMapper.Map<GetPageTrackOrderInput, GetPageTrackOrderInputVO>(input);
|
||||||
var pageList = await _trackOrderQueries.GetPageTrackOrder(vo);
|
var pageList = await _orderRepository.GetTrackOrderPagedList(vo);
|
||||||
var pageResultDto =
|
var pageResultDto =
|
||||||
ObjectMapper.Map<UnifyPageResultDto<TrackOrderVO>, UnifyPageResultDto<TrackOrderDto>>(pageList);
|
ObjectMapper.Map<UnifyPageResultDto<TrackOrderVO>, UnifyPageResultDto<TrackOrderDto>>(pageList);
|
||||||
return pageResultDto;
|
return pageResultDto;
|
||||||
@ -72,23 +67,6 @@ public class TrackOrderService : ApplicationService
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取轨迹计数器
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpGet("GetTrackCounter")]
|
|
||||||
public async Task<GetTrackCounterOutput> GetTrackCounterAsync()
|
|
||||||
{
|
|
||||||
var counts = await _trackOrderQueries.GetTrackProblemCountsAsync();
|
|
||||||
|
|
||||||
return new GetTrackCounterOutput
|
|
||||||
{
|
|
||||||
TotalCount = counts.Sum(x => x.Count),
|
|
||||||
ErrorCount = counts.FirstOrDefault(x => x.ProblemType == (int) TrackProblemType.Error)?.Count ?? 0,
|
|
||||||
WarnCount = counts.FirstOrDefault(x => x.ProblemType == (int) TrackProblemType.Warn)?.Count ?? 0,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取轨迹推送记录
|
/// 获取轨迹推送记录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -4,6 +4,13 @@ namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
|
|||||||
|
|
||||||
public interface IOrderRepository : IBasicRepository<OrderEntity>
|
public interface IOrderRepository : IBasicRepository<OrderEntity>
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 获取分页的轨迹订单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<UnifyPageResultDto<TrackOrderVO>> GetTrackOrderPagedList(GetPageTrackOrderInputVO input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建订单
|
/// 创建订单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -168,14 +168,10 @@ public class OrderEntity : IFullAuditedBasicEntitys, IAggregateRoot
|
|||||||
[SugarColumn(ColumnName = "ArrivalProvince")]
|
[SugarColumn(ColumnName = "ArrivalProvince")]
|
||||||
public string? ArrivalProvince { get; set; }
|
public string? ArrivalProvince { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 是否触发拉取,1表示触发
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "IsTriggerPull")]
|
|
||||||
public short? IsTriggerPull { get; set; }
|
|
||||||
|
|
||||||
[SugarColumn(IsIgnore = true)] public List<OrderFlightEntity> OrderFlights { get; set; }
|
[SugarColumn(IsIgnore = true)] public List<OrderFlightEntity> OrderFlights { get; set; }
|
||||||
|
|
||||||
|
[SugarColumn(IsIgnore = true)] public List<OrderPullStatusEntity> OrderPullStatus { get; set; }
|
||||||
|
|
||||||
public void ResetTrackInfo()
|
public void ResetTrackInfo()
|
||||||
{
|
{
|
||||||
IsCompleted = false;
|
IsCompleted = false;
|
||||||
|
|||||||
@ -1,50 +0,0 @@
|
|||||||
namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹订单模板表(1:N)
|
|
||||||
/// </summary>
|
|
||||||
[SugarTable("t_order_template")]
|
|
||||||
public class OrderTemplateEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEntity
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 自增主键
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 订单id
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "OrderId")]
|
|
||||||
public int OrderId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 服务商id
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "ServiceProviderId")]
|
|
||||||
public int ServiceProviderId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 模板id
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackTemplateId")]
|
|
||||||
public int TrackTemplateId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 创建人
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "CreateUserId")]
|
|
||||||
public int CreateUserId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 创建时间
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "CreateTime")]
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 是否删除
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "IsDeleted")]
|
|
||||||
public bool IsDeleted { get; set; }
|
|
||||||
}
|
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 订单轨迹拉取状态表(1:N)
|
||||||
|
/// </summary>
|
||||||
|
[SugarTable("t_order_pull_status")]
|
||||||
|
public class OrderPullStatusEntity : ICreateBaicEntity, IEntity
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 自增主键
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 订单id
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "OrderId")]
|
||||||
|
public int OrderId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 服务商code
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "ServiceProviderCode")]
|
||||||
|
public string ServiceProviderCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拉取状态
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "PullStatus")]
|
||||||
|
public TrackPullStatus PullStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 开始轨迹code
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "StartTrackCode")]
|
||||||
|
public string StartTrackCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 结束轨迹code
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "EndTrackCode")]
|
||||||
|
public string EndTrackCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 开始前的静默(小时)
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "SilenceBeforeStart")]
|
||||||
|
public int SilenceBeforeStart { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 结束后的静默(小时)
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "SilenceAfterEnd")]
|
||||||
|
public int SilenceAfterEnd { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 定时任务开始时间(计算量)
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "StartTime")]
|
||||||
|
public DateTime StartTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 定时任务结束时间(计算量)
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "EndTime")]
|
||||||
|
public DateTime EndTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "CreateUserId")]
|
||||||
|
public int CreateUserId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "CreateTime")]
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
|
|
||||||
|
public enum TrackPullStatus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 初始态
|
||||||
|
/// </summary>
|
||||||
|
Init = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 开始前的静默
|
||||||
|
/// </summary>
|
||||||
|
SilenceBeforeStart,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拉取中
|
||||||
|
/// </summary>
|
||||||
|
Pulling,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 结束后的静默
|
||||||
|
/// </summary>
|
||||||
|
SilenceAfterEnd,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拉取完成
|
||||||
|
/// </summary>
|
||||||
|
Completed
|
||||||
|
}
|
||||||
@ -68,11 +68,6 @@ public class TrackOrderVO
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string? OrderNumber { get; set; }
|
public string? OrderNumber { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹模版
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackTemplateNames { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 客户简称
|
/// 客户简称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -133,11 +128,6 @@ public class TrackOrderVO
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int SubSystemId { get; set; }
|
public int SubSystemId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹模板Id数组
|
|
||||||
/// </summary>
|
|
||||||
public List<int>? TrackTemplateIds { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 问题类型(主数据枚举TrackQuestionType)
|
/// 问题类型(主数据枚举TrackQuestionType)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -9,8 +9,6 @@ public class OrderWithServiceProviderVO
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int OrderType { get; set; }
|
public int OrderType { get; set; }
|
||||||
|
|
||||||
public int ServiceProviderId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 服务商code
|
/// 服务商code
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -27,19 +27,12 @@ public interface IProvideQueries
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取服务商下所有单(未完成的)
|
/// 获取服务商下所有单(未完成的)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="serviceProvider"></param>
|
/// <param name="serviceProviderId"></param>
|
||||||
/// <param name="pageIndex"></param>
|
/// <param name="pageIndex"></param>
|
||||||
/// <param name="pageSize"></param>
|
/// <param name="pageSize"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(int serviceProvider, int pageIndex,
|
Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(int serviceProviderId, int pageIndex,
|
||||||
int pageSize = 1000);
|
int pageSize = 1000);
|
||||||
|
|
||||||
Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode);
|
Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 查找订单和服务商信息
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="orderIds">订单id</param>
|
|
||||||
/// <returns>订单和服务商信息</returns>
|
|
||||||
Task<List<OrderTransportDto>> FindOrderWithServiceProviderAsync(int[] orderIds);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
using SJZY.Track.Domain.Dtos.Order;
|
|
||||||
|
|
||||||
namespace SJZY.Track.Domain.Queries;
|
|
||||||
|
|
||||||
public interface ITrackOrderQueries
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 获取分页的轨迹订单
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="input"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取轨迹各个问题数
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
Task<List<GetTrackCounterVO>> GetTrackProblemCountsAsync();
|
|
||||||
}
|
|
||||||
@ -37,14 +37,13 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
|
|||||||
public async Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(List<string> orderNos)
|
public async Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(List<string> orderNos)
|
||||||
{
|
{
|
||||||
return await Context.Queryable<OrderEntity>()
|
return await Context.Queryable<OrderEntity>()
|
||||||
.LeftJoin<OrderTemplateEntity>((a, b) => a.Id == b.OrderId)
|
.LeftJoin<OrderPullStatusEntity>((a, b) => a.Id == b.OrderId)
|
||||||
.LeftJoin<VServiceProviderEntity>((a, b, c) => b.ServiceProviderId == c.Id)
|
.LeftJoin<VServiceProviderEntity>((a, b, c) => b.ServiceProviderCode == c.Code)
|
||||||
.Where(a => !a.IsCompleted && orderNos.Contains(a.OrderNo))
|
.Where(a => !a.IsCompleted && orderNos.Contains(a.OrderNo))
|
||||||
.Select((a, b, c) => new OrderWithServiceProviderVO
|
.Select((a, b, c) => new OrderWithServiceProviderVO
|
||||||
{
|
{
|
||||||
OrderNo = a.OrderNo,
|
OrderNo = a.OrderNo,
|
||||||
OrderType = a.OrderType,
|
OrderType = a.OrderType,
|
||||||
ServiceProviderId = b.ServiceProviderId,
|
|
||||||
ServiceProviderCode = c.Code,
|
ServiceProviderCode = c.Code,
|
||||||
ServiceProviderName = c.Name,
|
ServiceProviderName = c.Name,
|
||||||
SubSystemId = a.SubSystemId
|
SubSystemId = a.SubSystemId
|
||||||
@ -53,18 +52,17 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public async Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(int serviceProvider,
|
public async Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(int serviceProviderId,
|
||||||
int pageIndex, int pageSize = 1000)
|
int pageIndex, int pageSize = 1000)
|
||||||
{
|
{
|
||||||
return await Context.Queryable<OrderEntity>()
|
return await Context.Queryable<OrderEntity>()
|
||||||
.RightJoin<OrderTemplateEntity>((a, b) => a.Id == b.OrderId)
|
.RightJoin<OrderPullStatusEntity>((a, b) => a.Id == b.OrderId)
|
||||||
.LeftJoin<VServiceProviderEntity>((a, b, c) => b.ServiceProviderId == c.Id)
|
.LeftJoin<VServiceProviderEntity>((a, b, c) => b.ServiceProviderCode == c.Code)
|
||||||
.Where((a, b) => b.ServiceProviderId == serviceProvider && !a.IsCompleted && a.IsTriggerPull == 1)
|
.Where((a, b, c) => c.Id == serviceProviderId && !a.IsCompleted)
|
||||||
.Select((a, b, c) => new OrderWithServiceProviderVO
|
.Select((a, b, c) => new OrderWithServiceProviderVO
|
||||||
{
|
{
|
||||||
OrderNo = a.OrderNo,
|
OrderNo = a.OrderNo,
|
||||||
OrderType = a.OrderType,
|
OrderType = a.OrderType,
|
||||||
ServiceProviderId = b.ServiceProviderId,
|
|
||||||
ServiceProviderCode = c.Code,
|
ServiceProviderCode = c.Code,
|
||||||
ServiceProviderName = c.Name,
|
ServiceProviderName = c.Name,
|
||||||
SubSystemId = a.SubSystemId
|
SubSystemId = a.SubSystemId
|
||||||
@ -74,21 +72,6 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
|
|||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
public async Task<List<OrderTransportDto>> FindOrderWithServiceProviderAsync(int[] orderIds)
|
|
||||||
{
|
|
||||||
return await Context.Queryable<OrderEntity>()
|
|
||||||
.InnerJoin<OrderTemplateEntity>((a, b) => a.Id == b.OrderId)
|
|
||||||
.Where((a, b) => orderIds.Contains(a.Id) && !a.IsCompleted)
|
|
||||||
.Select((a, b) => new OrderTransportDto
|
|
||||||
{
|
|
||||||
OrderId = a.Id,
|
|
||||||
ServiceProviderId = b.ServiceProviderId,
|
|
||||||
SubSystemId = a.SubSystemId
|
|
||||||
})
|
|
||||||
.ToListAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public async Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode)
|
public async Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,101 +0,0 @@
|
|||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
|
||||||
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
|
||||||
using SJZY.Track.Domain.Enums;
|
|
||||||
using SJZY.Track.Domain.Queries;
|
|
||||||
using SJZY.Track.Domain.VEntities;
|
|
||||||
|
|
||||||
namespace SJZY.Track.Repository.Queries;
|
|
||||||
|
|
||||||
public class TrackOrderQueries : ISugarRepository, ITrackOrderQueries,
|
|
||||||
ITransientDependency
|
|
||||||
{
|
|
||||||
public TrackOrderQueries()
|
|
||||||
{
|
|
||||||
Context = SqlsugarScopeBasic.GetContextSafely("default");
|
|
||||||
}
|
|
||||||
|
|
||||||
public ISqlSugarClient Context { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取分页的轨迹订单
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="input"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input)
|
|
||||||
{
|
|
||||||
var pageList = await Context.Queryable<OrderEntity>()
|
|
||||||
.LeftJoin<VExternalSubjectEntity>((a, b) => a.CustomId == b.Id && b.IsDeleted == false)
|
|
||||||
.LeftJoin<VSystemEntity>((a, b, c) => a.SubSystemId == c.Id && c.IsDeleted == false)
|
|
||||||
.WhereIF(input.SubSystemId > 0, (a, b, c) => a.SubSystemId == input.SubSystemId)
|
|
||||||
.WhereIF(!input.OrderNos.IsNullOrEmpty(), (a, b, c) => input.OrderNos!.Contains(a.OrderNo))
|
|
||||||
.WhereIF(input.CreateTimeStart.HasValue && input.CreateTimeEnd.HasValue,
|
|
||||||
(a, b, c) => a.CreateTime >= input.CreateTimeStart && a.CreateTime <= input.CreateTimeEnd)
|
|
||||||
.WhereIF(input.CreateTimeStart.HasValue && (!input.CreateTimeEnd.HasValue),
|
|
||||||
(a, b, c) => a.CreateTime >= input.CreateTimeStart)
|
|
||||||
.WhereIF((!input.CreateTimeStart.HasValue) && input.CreateTimeEnd.HasValue,
|
|
||||||
(a, b, c) => a.CreateTime <= input.CreateTimeEnd)
|
|
||||||
.WhereIF(input.CustomerId > 0, (a, b, c) => a.CustomId == input.CustomerId)
|
|
||||||
.WhereIF(input.TrackOrderType > 0, (a, b, c) => a.OrderType == input.TrackOrderType)
|
|
||||||
.WhereIF(input.TabType > 0, (a, b, c) => a.QuestionType == input.TabType)
|
|
||||||
.WhereIF(input.TabType == (int) TrackProblemType.Warn, (a, b, c) => !a.IsCompleted)
|
|
||||||
.OrderByDescending((a, b, c) => a.CreateTime)
|
|
||||||
.Select((a, b, c) => new TrackOrderVO
|
|
||||||
{
|
|
||||||
Id = a.Id,
|
|
||||||
OrderNumber = a.OrderNo,
|
|
||||||
OrderType = a.OrderType,
|
|
||||||
QuestionType = a.QuestionType,
|
|
||||||
CustomerShortName = b.Abbreviation,
|
|
||||||
CustomerCode = b.Code,
|
|
||||||
CustomerId = a.CustomId,
|
|
||||||
NewestTrackContent = a.LatestTrackContent,
|
|
||||||
NewestTrackEnContent = a.LatestTrackEnContent,
|
|
||||||
NewestTrackPlace = a.LatestTrackPlace,
|
|
||||||
NewestTrackTime = a.LatestTrackTime,
|
|
||||||
IsFinish = a.IsCompleted,
|
|
||||||
CreateTime = a.CreateTime,
|
|
||||||
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 trackTemplateList = await Context.Queryable<OrderTemplateEntity>()
|
|
||||||
.LeftJoin<TrackTemplateEntity>((a, b) => a.TrackTemplateId == b.Id)
|
|
||||||
.Where((a, b) => orderIds.Contains(a.OrderId))
|
|
||||||
.Select((a, b) => new
|
|
||||||
{
|
|
||||||
a.OrderId,
|
|
||||||
b.Name,
|
|
||||||
TemplateId = b.Id
|
|
||||||
})
|
|
||||||
.ToListAsync();
|
|
||||||
pageList.List.ForEach(a =>
|
|
||||||
{
|
|
||||||
a.TrackTemplateNames = trackTemplateList.Where(b => b.OrderId == a.Id).Select(x => x.Name)
|
|
||||||
.JoinAsString(",");
|
|
||||||
a.TrackTemplateIds = trackTemplateList.Where(b => b.OrderId == a.Id).Where(b => b.TemplateId > 0)
|
|
||||||
.Select(x => x.TemplateId).ToList();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return pageList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<List<GetTrackCounterVO>> GetTrackProblemCountsAsync()
|
|
||||||
{
|
|
||||||
return await Context.Queryable<OrderEntity>()
|
|
||||||
.GroupBy(x => x.QuestionType)
|
|
||||||
.Select(x => new GetTrackCounterVO
|
|
||||||
{
|
|
||||||
ProblemType = x.QuestionType,
|
|
||||||
Count = SqlFunc.AggregateCount(1)
|
|
||||||
})
|
|
||||||
.ToListAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,11 +1,54 @@
|
|||||||
using SJZY.Track.Domain;
|
using SJZY.Track.Domain;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
using SJZY.Track.Domain.Dtos.Order;
|
||||||
|
using SJZY.Track.Domain.Enums;
|
||||||
|
using SJZY.Track.Domain.VEntities;
|
||||||
|
|
||||||
namespace SJZY.Track.Repository.Repositories;
|
namespace SJZY.Track.Repository.Repositories;
|
||||||
|
|
||||||
public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, ITransientDependency
|
public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, ITransientDependency
|
||||||
{
|
{
|
||||||
|
public async Task<UnifyPageResultDto<TrackOrderVO>> GetTrackOrderPagedList(GetPageTrackOrderInputVO input)
|
||||||
|
{
|
||||||
|
var pageList = await Context.Queryable<OrderEntity>()
|
||||||
|
.LeftJoin<VExternalSubjectEntity>((a, b) => a.CustomId == b.Id && b.IsDeleted == false)
|
||||||
|
.LeftJoin<VSystemEntity>((a, b, c) => a.SubSystemId == c.Id && c.IsDeleted == false)
|
||||||
|
.WhereIF(input.SubSystemId > 0, (a, b, c) => a.SubSystemId == input.SubSystemId)
|
||||||
|
.WhereIF(!input.OrderNos.IsNullOrEmpty(), (a, b, c) => input.OrderNos!.Contains(a.OrderNo))
|
||||||
|
.WhereIF(input.CreateTimeStart.HasValue && input.CreateTimeEnd.HasValue,
|
||||||
|
(a, b, c) => a.CreateTime >= input.CreateTimeStart && a.CreateTime <= input.CreateTimeEnd)
|
||||||
|
.WhereIF(input.CreateTimeStart.HasValue && (!input.CreateTimeEnd.HasValue),
|
||||||
|
(a, b, c) => a.CreateTime >= input.CreateTimeStart)
|
||||||
|
.WhereIF((!input.CreateTimeStart.HasValue) && input.CreateTimeEnd.HasValue,
|
||||||
|
(a, b, c) => a.CreateTime <= input.CreateTimeEnd)
|
||||||
|
.WhereIF(input.CustomerId > 0, (a, b, c) => a.CustomId == input.CustomerId)
|
||||||
|
.WhereIF(input.TrackOrderType > 0, (a, b, c) => a.OrderType == input.TrackOrderType)
|
||||||
|
.WhereIF(input.TabType > 0, (a, b, c) => a.QuestionType == input.TabType)
|
||||||
|
.WhereIF(input.TabType == (int) TrackProblemType.Warn, (a, b, c) => !a.IsCompleted)
|
||||||
|
.OrderByDescending((a, b, c) => a.CreateTime)
|
||||||
|
.Select((a, b, c) => new TrackOrderVO
|
||||||
|
{
|
||||||
|
Id = a.Id,
|
||||||
|
OrderNumber = a.OrderNo,
|
||||||
|
OrderType = a.OrderType,
|
||||||
|
QuestionType = a.QuestionType,
|
||||||
|
CustomerShortName = b.Abbreviation,
|
||||||
|
CustomerCode = b.Code,
|
||||||
|
CustomerId = a.CustomId,
|
||||||
|
NewestTrackContent = a.LatestTrackContent,
|
||||||
|
NewestTrackEnContent = a.LatestTrackEnContent,
|
||||||
|
NewestTrackPlace = a.LatestTrackPlace,
|
||||||
|
NewestTrackTime = a.LatestTrackTime,
|
||||||
|
IsFinish = a.IsCompleted,
|
||||||
|
CreateTime = a.CreateTime,
|
||||||
|
SubSystem = c.CnName,
|
||||||
|
SubSystemId = c.Id
|
||||||
|
})
|
||||||
|
.ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||||
|
|
||||||
|
return pageList;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<int> CreateOrderAsync(OrderEntity order)
|
public async Task<int> CreateOrderAsync(OrderEntity order)
|
||||||
{
|
{
|
||||||
using var tran = TransactionHelper.GetReadCommitted();
|
using var tran = TransactionHelper.GetReadCommitted();
|
||||||
@ -13,6 +56,8 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
|||||||
var orderId = await InsertReturnIdentityAsync(order);
|
var orderId = await InsertReturnIdentityAsync(order);
|
||||||
order.OrderFlights.ForEach(x => x.OrderId = orderId);
|
order.OrderFlights.ForEach(x => x.OrderId = orderId);
|
||||||
await Context.Insertable(order.OrderFlights).ExecuteCommandAsync();
|
await Context.Insertable(order.OrderFlights).ExecuteCommandAsync();
|
||||||
|
order.OrderPullStatus.ForEach(x => x.OrderId = orderId);
|
||||||
|
await Context.Insertable(order.OrderPullStatus).ExecuteCommandAsync();
|
||||||
|
|
||||||
tran.Complete();
|
tran.Complete();
|
||||||
|
|
||||||
@ -42,7 +87,7 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 更新订单模板
|
// 更新订单模板
|
||||||
await Context.Deleteable<OrderTemplateEntity>().Where(x => x.OrderId == order.Id).ExecuteCommandAsync();
|
await Context.Deleteable<OrderPullStatusEntity>().Where(x => x.OrderId == order.Id).ExecuteCommandAsync();
|
||||||
|
|
||||||
// 更新订单航班
|
// 更新订单航班
|
||||||
await Context.Deleteable<OrderFlightEntity>().Where(x => x.OrderId == order.Id).ExecuteCommandAsync();
|
await Context.Deleteable<OrderFlightEntity>().Where(x => x.OrderId == order.Id).ExecuteCommandAsync();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user