From 72a10635236bbb0a9f5b9de09b10b790a9fea0cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com>
Date: Wed, 28 Feb 2024 16:51:21 +0800
Subject: [PATCH] =?UTF-8?q?change=20=E8=AE=A2=E5=8D=95=E8=81=9A=E5=90=88?=
=?UTF-8?q?=E5=8F=98=E6=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dtos/ProvideServices/CreateOrderInput.cs | 57 ++----------------
.../Dtos/ProvideServices/UpdateOrderInput.cs | 59 +++++++++++++++++++
.../Services/ProvideServices/OrderService.cs | 31 ++++++----
.../Aggregates/OrderAggregate/OrderEntity.cs | 57 +++++++++---------
.../OrderAggregate/OrderFlightEntity.cs | 38 ++++++++++++
.../OrderAggregate/OrderLinkEntity.cs | 8 +--
6 files changed, 154 insertions(+), 96 deletions(-)
create mode 100644 src/SJZY.Track.Application/Dtos/ProvideServices/UpdateOrderInput.cs
create mode 100644 src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs
diff --git a/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs b/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs
index d099eaaa..31b917f2 100644
--- a/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs
+++ b/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs
@@ -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; }
-
///
/// 客户id
///
public int ClientId { get; set; }
-
- ///
- /// 订单模板
- ///
- public List Templates { get; set; }
-
- ///
- /// 订单明细
- ///
- public OrderDetails Details { get; set; }
}
public class OrderTemplateInfo
@@ -34,42 +21,7 @@ public class OrderTemplateInfo
///
/// 服务商id
///
- public int ServiceProviderId { get; set; }
-}
-
-public class OrderDetails
-{
- ///
- /// 目的港口
- ///
- public string? ArrivalPort { get; set; }
-
- ///
- /// 起运港口
- ///
- public string? LeavePort { get; set; }
-
- ///
- /// 目的国家,必填
- ///
- public string ArrivalCountry { get; set; }
-
- ///
- /// 起运国家,必填
- ///
- public string LeaveCountry { get; set; }
-
- ///
- /// 目的城市,必填
- ///
- public string ArrivalCity { get; set; }
-
- ///
- /// 起运城市,必填
- ///
- public string LeaveCity { get; set; }
-
- public List FligthInfos { get; set; }
+ public int? ServiceProviderId { get; set; }
}
public class FligthInfo
@@ -77,10 +29,13 @@ public class FligthInfo
///
/// 航班号
///
+ [Required]
+ [MaxLength(50)]
public string FlightNo { get; set; }
///
/// 班期
///
- public string FlightDate { get; set; }
+ [Required]
+ public DateTime FlightDate { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Dtos/ProvideServices/UpdateOrderInput.cs b/src/SJZY.Track.Application/Dtos/ProvideServices/UpdateOrderInput.cs
new file mode 100644
index 00000000..88b12be1
--- /dev/null
+++ b/src/SJZY.Track.Application/Dtos/ProvideServices/UpdateOrderInput.cs
@@ -0,0 +1,59 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace SJZY.Track.Application.Dtos.ProvideServices;
+
+public class UpdateOrderInput
+{
+ ///
+ /// 订单类型,必填
+ ///
+ [Required]
+ public int OrderType { get; set; }
+
+ ///
+ /// 订单号,必填
+ ///
+ [Required]
+ [MaxLength(100)]
+ public string OrderNo { get; set; }
+
+ ///
+ /// 订单模板(传全量)
+ ///
+ public List Templates { get; set; } = new();
+
+ ///
+ /// 目的港口
+ ///
+ public string? ArrivalPort { get; set; }
+
+ ///
+ /// 起运港口
+ ///
+ public string? LeavePort { get; set; }
+
+ ///
+ /// 目的国家,必填
+ ///
+ public string ArrivalCountry { get; set; }
+
+ ///
+ /// 起运国家,必填
+ ///
+ public string LeaveCountry { get; set; }
+
+ ///
+ /// 目的城市,必填
+ ///
+ public string ArrivalCity { get; set; }
+
+ ///
+ /// 起运城市,必填
+ ///
+ public string LeaveCity { get; set; }
+
+ ///
+ /// 订单航班信息
+ ///
+ public List FlightInfos { get; set; } = new();
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs
index e40ed43e..a5a37ce2 100644
--- a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs
+++ b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs
@@ -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 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 UpdateOrderAsync(UpdateOrderInput input)
+ {
+ return true;
+ }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs
index e474f40e..9fe699e4 100644
--- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs
@@ -1,6 +1,4 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
+namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
///
/// 轨迹订单主表
@@ -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
-{
///
- /// 订单类型,必填
+ /// 目的城市
///
- [Required]
- public int NoType { get; set; }
+ [SugarColumn(ColumnName = "ArrivalCity")]
+ public string ArrivalCity { get; set; }
///
- /// 订单号,必填
+ /// 目的国家
///
- [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;
- }
+ ///
+ /// 目的港口
+ ///
+ [SugarColumn(ColumnName = "ArrivalPort")]
+ public string ArrivalPort { get; set; }
- public override string ToString()
- {
- return $"[订单类型: {NoType}, 订单号: {OrderNo}]";
- }
+ ///
+ /// 起运城市
+ ///
+ [SugarColumn(ColumnName = "LeaveCity")]
+ public string LeaveCity { get; set; }
+
+ ///
+ /// 起运国家
+ ///
+ [SugarColumn(ColumnName = "LeaveCountry")]
+ public string LeaveCountry { get; set; }
+
+ ///
+ /// 起运港口
+ ///
+ [SugarColumn(ColumnName = "LeavePort")]
+ public string LeavePort { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs
new file mode 100644
index 00000000..8e828946
--- /dev/null
+++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs
@@ -0,0 +1,38 @@
+namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
+
+public class OrderFlightEntity : ICreateBaicEntity, IEntity
+{
+ ///
+ /// 自增主键
+ ///
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 班期
+ ///
+ [SugarColumn(ColumnName = "FlightDate")]
+ public DateTime FlightDate { get; set; }
+
+ ///
+ /// 航班号
+ ///
+ [SugarColumn(ColumnName = "FlightNo")]
+ public string FlightNo { get; set; }
+
+ ///
+ /// 订单id
+ ///
+ [SugarColumn(ColumnName = "OrderId")]
+ public int OrderId { get; set; }
+
+ ///
+ /// 创建人
+ ///
+ public int CreateUserId { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime? CreateTime { get; set; }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs
index 96c005b5..bc94704a 100644
--- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs
@@ -4,8 +4,7 @@
/// 轨迹订单关联表(1:N)
///
[SugarTable("t_order_link")]
-public class OrderLinkEntity : ICreateBaicEntity,
- ISoftDeleteBasicEntity, IEntity
+public class OrderLinkEntity : ICreateBaicEntity, IEntity
{
///
/// 自增主键
@@ -46,9 +45,4 @@ public class OrderLinkEntity : ICreateBaicEntity,
/// 创建时间
///
public DateTime? CreateTime { get; set; }
-
- ///
- /// 是否删除(已解绑)
- ///
- public bool IsDeleted { get; set; }
}
\ No newline at end of file