From 5acb98d50adb693d31df019fae334e17c1f79c84 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Jun 2022 13:47:33 +0800 Subject: [PATCH] =?UTF-8?q?ods=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=B8=8D=E5=85=81=E8=AE=B8=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderController.cs | 10 - BBWY.Server.Business/Order/OrderBusiness.cs | 211 ++---------------- 2 files changed, 23 insertions(+), 198 deletions(-) diff --git a/BBWY.Server.API/Controllers/OrderController.cs b/BBWY.Server.API/Controllers/OrderController.cs index c269630a..3e2fd356 100644 --- a/BBWY.Server.API/Controllers/OrderController.cs +++ b/BBWY.Server.API/Controllers/OrderController.cs @@ -102,16 +102,6 @@ namespace BBWY.Server.API.Controllers orderBusiness.SDCalculationCost(sdCalculationCostRequest); } - /// - /// 关联采购单 - /// - /// - [HttpPost] - public void RelationPurchaseOrder([FromBody] RelationPurchaseOrderRequest relationPurchaseOrderRequest) - { - orderBusiness.RelationPurchaseOrder(relationPurchaseOrderRequest); - } - /// /// 关联采购单V2 /// diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index bc43c98f..c0ae7597 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -734,171 +734,6 @@ namespace BBWY.Server.Business }); } - /// - /// 关联外部订单 - /// - /// - public void RelationPurchaseOrder(RelationPurchaseOrderRequest relationPurchaseOrderRequest) - { - var dbOrder = fsql.Select(relationPurchaseOrderRequest.OrderDropShipping.OrderId).ToOne(); - if (dbOrder == null) - throw new BusinessException($"订单号{relationPurchaseOrderRequest.OrderDropShipping.OrderId}不存在"); - - if (relationPurchaseOrderRequest.PlatformCommissionRatio == 0M) - relationPurchaseOrderRequest.PlatformCommissionRatio = 0.05M; - - IInsert insertOrderDropShipping = null; - IUpdate updateOrderDropShipping = null; - IInsert insertOrderCost = null; - IUpdate updateOrderCost = null; - IDelete deletePurchaseOrder = null; - IDelete deleteOrderCostDetail = null; - IUpdate updateOrderSku = null; - List insertPurchaseOrderList = new List(); - List insertOrderCostDetailList = new List(); - - - #region 代发信息表 - var dbOrderDropShipping = fsql.Select().Where(ods => ods.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId).ToOne(); - if (dbOrderDropShipping == null) - { - var orderDropShipping = relationPurchaseOrderRequest.OrderDropShipping.Map(); - orderDropShipping.CreateTime = DateTime.Now; - orderDropShipping.ShopId = dbOrder.ShopId; - orderDropShipping.Id = idGenerator.NewLong(); - insertOrderDropShipping = fsql.Insert(orderDropShipping); - updateOrderSku = fsql.Update().Set(osku => osku.OrderDropShippingId, orderDropShipping.Id) - .Where(osku => osku.OrderId == dbOrder.Id); - } - else - { - var orderDropShippingId = dbOrderDropShipping.Id; - relationPurchaseOrderRequest.OrderDropShipping.Map(dbOrderDropShipping); - dbOrderDropShipping.Id = orderDropShippingId; - updateOrderDropShipping = fsql.Update().IgnoreColumns(new string[] { "CreateTime" }).SetSource(dbOrderDropShipping); - } - #endregion - - #region 采购单表 - var oldPourchaseIdList = fsql.Select().Where(ocd => ocd.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId) - .ToList(ocd => ocd.PurchaseOrderPKId); - deletePurchaseOrder = fsql.Delete().Where(po => oldPourchaseIdList.Contains(po.Id)); - insertPurchaseOrderList.AddRange(relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Select(x => new PurchaseOrder() - { - Id = idGenerator.NewLong(), - CreateTime = DateTime.Now, - ProductId = x.ProductId, - PurchaseMethod = Enums.PurchaseMethod.线下采购, - StorageType = Enums.StorageType.代发, - PurchaseOrderId = relationPurchaseOrderRequest.OrderDropShipping.PurchaseOrderId, - PurchasePlatform = relationPurchaseOrderRequest.OrderDropShipping.PurchasePlatform, - PurchaseQuantity = x.Quantity, - RemainingQuantity = 0, - ShopId = dbOrder.ShopId, - SkuId = x.SkuId, - SingleConsumableAmount = 0, - SingleFirstFreight = 0, - SingleFreight = relationPurchaseOrderRequest.OrderDropShipping.PurchaseFreight / relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Count() / x.Quantity, - SingleOperationAmount = 0, - SingleStorageAmount = 0, - SingleSkuAmount = x.SingleSkuAmount, - SingleDeliveryFreight = 0 - })); - #endregion - - #region 订单成本表 - var orderCost = fsql.Select(relationPurchaseOrderRequest.OrderDropShipping.OrderId).ToOne(); - if (orderCost != null) - { - orderCost.PlatformCommissionRatio = relationPurchaseOrderRequest.PlatformCommissionRatio; - orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * relationPurchaseOrderRequest.PlatformCommissionRatio; - orderCost.DeliveryExpressFreight = relationPurchaseOrderRequest.OrderDropShipping.DeliveryFreight; - orderCost.PurchaseAmount = relationPurchaseOrderRequest.OrderDropShipping.PurchaseAmount; - orderCost.Profit = dbOrder.OrderSellerPrice + - dbOrder.FreightPrice - - orderCost.PurchaseAmount - - orderCost.DeliveryExpressFreight - - orderCost.PlatformCommissionAmount; - updateOrderCost = fsql.Update().SetSource(orderCost).IgnoreColumns(oc => new - { - oc.CreateTime, - oc.SDCommissionAmount, - oc.PlatformCommissionAmount, - oc.PlatformCommissionRatio - }); - } - else - { - var preferentialAmount = fsql.Select().Where(oc => oc.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId) - .ToAggregate(g => g.Sum(g.Key.CouponPrice)); - orderCost = new OrderCost() - { - OrderId = relationPurchaseOrderRequest.OrderDropShipping.OrderId, - CreateTime = DateTime.Now, - DeliveryExpressFreight = relationPurchaseOrderRequest.OrderDropShipping.DeliveryFreight, - PlatformCommissionRatio = relationPurchaseOrderRequest.PlatformCommissionRatio, - SDCommissionAmount = 0, - PurchaseAmount = relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Sum(s => s.SingleSkuAmount * s.Quantity), - PlatformCommissionAmount = dbOrder.OrderSellerPrice * relationPurchaseOrderRequest.PlatformCommissionRatio, - PreferentialAmount = preferentialAmount, - IsManualEdited = true - }; - - orderCost.Profit = dbOrder.OrderSellerPrice + - dbOrder.FreightPrice - - orderCost.PurchaseAmount - - orderCost.DeliveryExpressFreight - - orderCost.PlatformCommissionAmount; - insertOrderCost = fsql.Insert(orderCost); - } - #endregion - - #region 订单成本明细表 - var oldOrderCostDetailIdList = fsql.Select().Where(ocd => ocd.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId) - .ToList(ocd => ocd.Id); - deleteOrderCostDetail = fsql.Delete().Where(ocd => oldOrderCostDetailIdList.Contains(ocd.Id)); - insertOrderCostDetailList.AddRange(relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Select(x => new OrderCostDetail() - { - Id = idGenerator.NewLong(), - ConsumableAmount = 0, - CreateTime = DateTime.Now, - DeductionQuantity = x.Quantity, - DeliveryExpressFreight = 0, - FirstFreight = 0, - OperationAmount = 0, - OrderId = relationPurchaseOrderRequest.OrderDropShipping.OrderId, - ProductId = x.ProductId, - PurchaseFreight = relationPurchaseOrderRequest.OrderDropShipping.PurchaseFreight / relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Count(), - SkuAmount = x.SingleSkuAmount * x.Quantity, - SkuId = x.SkuId, - StorageAmount = 0, - TotalCost = x.SingleSkuAmount * x.Quantity + relationPurchaseOrderRequest.OrderDropShipping.PurchaseFreight / relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Count(), - UnitCost = x.SingleSkuAmount, - PurchaseOrderPKId = insertPurchaseOrderList.FirstOrDefault(po => po.SkuId == x.SkuId).Id - })); - #endregion - - fsql.Transaction(() => - { - deletePurchaseOrder?.ExecuteAffrows(); - deleteOrderCostDetail?.ExecuteAffrows(); - insertOrderDropShipping?.ExecuteAffrows(); - updateOrderDropShipping?.ExecuteAffrows(); - insertOrderCost?.ExecuteAffrows(); - updateOrderCost?.ExecuteAffrows(); - updateOrderSku?.ExecuteAffrows(); - fsql.Insert(insertPurchaseOrderList).ExecuteAffrows(); - fsql.Insert(insertOrderCostDetailList).ExecuteAffrows(); - if (dbOrder.StorageType != Enums.StorageType.代发) - { - fsql.Update(relationPurchaseOrderRequest.OrderDropShipping.OrderId) - .Set(o => o.StorageType, Enums.StorageType.代发) - .SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Enums.OrderState.待出库) - .ExecuteAffrows(); - } - }); - } - /// /// 关联外部订单 /// @@ -941,7 +776,7 @@ namespace BBWY.Server.Business } else { - updateOrderDropShippingList.Add(fsql.Update().SetSource(orderDropShipping).IgnoreColumns(new string[] { "CreateTime", "ShopId" })); + updateOrderDropShippingList.Add(fsql.Update().SetSource(orderDropShipping).IgnoreColumns(ods => new { ods.CreateTime, ods.ShopId })); } #endregion @@ -1052,30 +887,30 @@ namespace BBWY.Server.Business } fsql.Transaction(() => - { - deletePurchaseOrder.ExecuteAffrows(); - deleteOrderCostDetail.ExecuteAffrows(); - foreach (var update in updateOrderSkuList) - update.ExecuteAffrows(); - fsql.Insert(insertPurchaseOrderList).ExecuteAffrows(); - fsql.Insert(insertOrderCostDetailList).ExecuteAffrows(); - insertOrderCost?.ExecuteAffrows(); - updateOrderCost?.ExecuteAffrows(); - if (insertOrderDropShippingList.Count() > 0) - fsql.Insert(insertOrderDropShippingList).ExecuteAffrows(); - if (updateOrderDropShippingList.Count() > 0) { - foreach (var update in updateOrderDropShippingList) + deletePurchaseOrder.ExecuteAffrows(); + deleteOrderCostDetail.ExecuteAffrows(); + foreach (var update in updateOrderSkuList) update.ExecuteAffrows(); - } - if (dbOrder.StorageType != Enums.StorageType.代发) - { - fsql.Update(dbOrder.Id) - .Set(o => o.StorageType, Enums.StorageType.代发) - .SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Enums.OrderState.待出库) - .ExecuteAffrows(); - } - }); + fsql.Insert(insertPurchaseOrderList).ExecuteAffrows(); + fsql.Insert(insertOrderCostDetailList).ExecuteAffrows(); + insertOrderCost?.ExecuteAffrows(); + updateOrderCost?.ExecuteAffrows(); + if (insertOrderDropShippingList.Count() > 0) + fsql.Insert(insertOrderDropShippingList).ExecuteAffrows(); + if (updateOrderDropShippingList.Count() > 0) + { + foreach (var update in updateOrderDropShippingList) + update.ExecuteAffrows(); + } + if (dbOrder.StorageType != Enums.StorageType.代发) + { + fsql.Update(dbOrder.Id) + .Set(o => o.StorageType, Enums.StorageType.代发) + .SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Enums.OrderState.待出库) + .ExecuteAffrows(); + } + }); } ///