Merge branch 'S01-轨迹中台' of http://192.168.80.50:3000/Dotnet/SJZY.Track.Api into S01-轨迹中台
This commit is contained in:
commit
6f78f868f1
@ -1,26 +1,13 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
|
||||
namespace SJZY.Track.Application.Dtos.ProvideServices;
|
||||
|
||||
public class CreateOrderInput
|
||||
public class CreateOrderInput : UpdateOrderInput
|
||||
{
|
||||
public NoInfo NoInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户id
|
||||
/// </summary>
|
||||
public int ClientId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单模板
|
||||
/// </summary>
|
||||
public List<OrderTemplateInfo> Templates { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单明细
|
||||
/// </summary>
|
||||
public OrderDetails Details { get; set; }
|
||||
}
|
||||
|
||||
public class OrderTemplateInfo
|
||||
@ -34,42 +21,7 @@ public class OrderTemplateInfo
|
||||
/// <summary>
|
||||
/// 服务商id
|
||||
/// </summary>
|
||||
public int ServiceProviderId { get; set; }
|
||||
}
|
||||
|
||||
public class OrderDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// 目的港口
|
||||
/// </summary>
|
||||
public string? ArrivalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运港口
|
||||
/// </summary>
|
||||
public string? LeavePort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目的国家,必填
|
||||
/// </summary>
|
||||
public string ArrivalCountry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运国家,必填
|
||||
/// </summary>
|
||||
public string LeaveCountry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目的城市,必填
|
||||
/// </summary>
|
||||
public string ArrivalCity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运城市,必填
|
||||
/// </summary>
|
||||
public string LeaveCity { get; set; }
|
||||
|
||||
public List<FligthInfo> FligthInfos { get; set; }
|
||||
public int? ServiceProviderId { get; set; }
|
||||
}
|
||||
|
||||
public class FligthInfo
|
||||
@ -77,10 +29,13 @@ public class FligthInfo
|
||||
/// <summary>
|
||||
/// 航班号
|
||||
/// </summary>
|
||||
[Required]
|
||||
[MaxLength(50)]
|
||||
public string FlightNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 班期
|
||||
/// </summary>
|
||||
public string FlightDate { get; set; }
|
||||
[Required]
|
||||
public DateTime FlightDate { get; set; }
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Dtos.ProvideServices;
|
||||
|
||||
public class UpdateOrderInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单类型,必填
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int OrderType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单号,必填
|
||||
/// </summary>
|
||||
[Required]
|
||||
[MaxLength(100)]
|
||||
public string OrderNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单模板(传全量)
|
||||
/// </summary>
|
||||
public List<OrderTemplateInfo> Templates { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// 目的港口
|
||||
/// </summary>
|
||||
public string? ArrivalPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运港口
|
||||
/// </summary>
|
||||
public string? LeavePort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目的国家,必填
|
||||
/// </summary>
|
||||
public string ArrivalCountry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运国家,必填
|
||||
/// </summary>
|
||||
public string LeaveCountry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目的城市,必填
|
||||
/// </summary>
|
||||
public string ArrivalCity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运城市,必填
|
||||
/// </summary>
|
||||
public string LeaveCity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单航班信息
|
||||
/// </summary>
|
||||
public List<FligthInfo> FlightInfos { get; set; } = new();
|
||||
}
|
||||
@ -1,5 +1,4 @@
|
||||
using Newtonsoft.Json;
|
||||
using SJZY.Track.Application.Dtos.ProvideServices;
|
||||
using SJZY.Track.Application.Dtos.ProvideServices;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.UserCenter.HttpApi.Services;
|
||||
|
||||
@ -28,18 +27,22 @@ public class OrderService : ApplicationService
|
||||
public async Task<bool> CreateOrderAsync(CreateOrderInput input)
|
||||
{
|
||||
if (await _orderRepository.IsAnyAsync(x =>
|
||||
x.OrderType == input.NoInfo.NoType && x.OrderNo == input.NoInfo.OrderNo))
|
||||
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo))
|
||||
{
|
||||
throw new BusinessException(message: $"单号:{input.NoInfo.OrderNo}已存在");
|
||||
throw new BusinessException(message: $"单号:{input.OrderNo}已存在");
|
||||
}
|
||||
|
||||
var order = new OrderEntity
|
||||
{
|
||||
CustomId = input.ClientId,
|
||||
OrderDetails = JsonConvert.SerializeObject(input.Details),
|
||||
OrderNo = input.NoInfo.OrderNo,
|
||||
OrderType = input.NoInfo.NoType,
|
||||
SubSystemId = CurrentUserRequest.SubSystemId
|
||||
OrderNo = input.OrderNo,
|
||||
OrderType = input.OrderType,
|
||||
SubSystemId = CurrentUserRequest.SubSystemId,
|
||||
IsCompleted = false,
|
||||
LatestTraceContent = null,
|
||||
LatestTraceEnContent = null,
|
||||
LatestTraceTime = null,
|
||||
OrderDetails = null,
|
||||
};
|
||||
|
||||
using var tran = TransactionHelper.GetReadCommitted();
|
||||
@ -47,16 +50,24 @@ public class OrderService : ApplicationService
|
||||
// 创建订单
|
||||
var orderId = await _orderRepository.InsertReturnIdentityAsync(order);
|
||||
|
||||
// 创建订单模板
|
||||
var templates = input.Templates.Select(x => new OrderTemplateEntity
|
||||
{
|
||||
OrderId = orderId,
|
||||
ServiceProviderId = x.ServiceProviderId,
|
||||
ServiceProviderId = x.ServiceProviderId ?? 0,
|
||||
TrackTemplateId = x.TemplateId
|
||||
}).ToList();
|
||||
|
||||
// 创建订单模板
|
||||
await _orderRepository.CreateOrderTemplatesAsync(templates);
|
||||
|
||||
tran.Complete();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
[HttpPost("Order/Update")]
|
||||
public async Task<bool> UpdateOrderAsync(UpdateOrderInput input)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹订单主表
|
||||
@ -68,36 +66,39 @@ public class OrderEntity : IFullAuditedBasicEntitys, IAggregateRoot
|
||||
[SugarColumn(ColumnName = "SubSystemId")]
|
||||
public int SubSystemId { get; set; }
|
||||
|
||||
|
||||
public bool IsEqual(NoInfo noInfo)
|
||||
{
|
||||
return OrderType == noInfo.NoType && OrderNo == noInfo.OrderNo;
|
||||
}
|
||||
}
|
||||
|
||||
public struct NoInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单类型,必填
|
||||
/// 目的城市
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int NoType { get; set; }
|
||||
[SugarColumn(ColumnName = "ArrivalCity")]
|
||||
public string ArrivalCity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单号,必填
|
||||
/// 目的国家
|
||||
/// </summary>
|
||||
[Required]
|
||||
[MaxLength(100)]
|
||||
public string OrderNo { get; set; }
|
||||
[SugarColumn(ColumnName = "ArrivalCountry")]
|
||||
public string ArrivalCountry { get; set; }
|
||||
|
||||
public NoInfo(int noType, string orderNo)
|
||||
{
|
||||
NoType = noType;
|
||||
OrderNo = orderNo;
|
||||
}
|
||||
/// <summary>
|
||||
/// 目的港口
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "ArrivalPort")]
|
||||
public string ArrivalPort { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"[订单类型: {NoType}, 订单号: {OrderNo}]";
|
||||
}
|
||||
/// <summary>
|
||||
/// 起运城市
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "LeaveCity")]
|
||||
public string LeaveCity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运国家
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "LeaveCountry")]
|
||||
public string LeaveCountry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起运港口
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "LeavePort")]
|
||||
public string LeavePort { get; set; }
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
|
||||
public class OrderFlightEntity : ICreateBaicEntity, IEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 自增主键
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 班期
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "FlightDate")]
|
||||
public DateTime FlightDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 航班号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "FlightNo")]
|
||||
public string FlightNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单id
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "OrderId")]
|
||||
public int OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
public int CreateUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
}
|
||||
@ -4,8 +4,7 @@
|
||||
/// 轨迹订单关联表(1:N)
|
||||
/// </summary>
|
||||
[SugarTable("t_order_link")]
|
||||
public class OrderLinkEntity : ICreateBaicEntity,
|
||||
ISoftDeleteBasicEntity, IEntity
|
||||
public class OrderLinkEntity : ICreateBaicEntity, IEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 自增主键
|
||||
@ -46,9 +45,4 @@ public class OrderLinkEntity : ICreateBaicEntity,
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除(已解绑)
|
||||
/// </summary>
|
||||
public bool IsDeleted { get; set; }
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user