From faba31818aaba76f8be3e55df6662fedd18a5700 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 24 May 2023 23:20:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrder/PurchaseOrderBusiness.cs | 52 ++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index c126e01..5f0717b 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -350,7 +350,8 @@ namespace BBWYB.Server.Business IsManualEdited = false, PlatformCommissionRatio = 0, PreferentialAmount = 0, - PurchaseAmount = totalPurchaseAmount + PurchaseAmount = totalPurchaseAmount, + TotalCost = totalPurchaseAmount }; //orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio; orderCost.Profit = dbOrder.OrderTotalPrice - @@ -450,6 +451,8 @@ namespace BBWYB.Server.Business var dbPurchaseOrderList = fsql.Select().Where(opi => opi.OrderId == request.OrderId).ToList(); var dbOrderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList(); var dbOrderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == request.OrderId).ToList(); + var dbOrderCost = fsql.Select(request.OrderId).ToOne(); + var dbOrder = fsql.Select(request.OrderId).ToOne(); List insertOrderPurchaseInfoList = new List(); IList> updateOrderPurchaseInfoList = new List>(); @@ -523,9 +526,54 @@ namespace BBWYB.Server.Business } } - fsql.Transaction(() => + + var totalPurchaseAmount = request.AssociationPurchaseOrderList.Sum(p => p.PurchaseAmount + p.PurchaseFreight); + var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount + + if (dbOrderCost == null) + { + dbOrderCost = new OrderCost() + { + OrderId = request.OrderId, + DeliveryExpressFreight = 0, + IsManualEdited = false, + PlatformCommissionAmount = 0, + PlatformCommissionRatio = 0, + PreferentialAmount = 0, + CreateTime = DateTime.Now, + PurchaseAmount = totalPurchaseAmount, + TotalCost = totalPurchaseAmount, + Profit = profit + }; + insertOrderCost = fsql.Insert(dbOrderCost); + } + else { + dbOrderCost.PurchaseAmount = totalPurchaseAmount; + dbOrderCost.Profit = profit; + updateOrderCost = fsql.Update(request.OrderId).Set(oc => oc.PurchaseAmount, totalPurchaseAmount) + .Set(oc => oc.TotalCost, totalPurchaseAmount) + .Set(oc => oc.Profit, profit); + } + fsql.Transaction(() => + { + if (insertOrderPurchaseInfoList.Count() > 0) + fsql.Insert(insertOrderPurchaseInfoList).ExecuteAffrows(); + if (updateOrderPurchaseInfoList.Count() > 0) + { + foreach (var update in updateOrderPurchaseInfoList) + update.ExecuteAffrows(); + } + if (insertOrderCostDetailList.Count() > 0) + fsql.Insert(insertOrderCostDetailList).ExecuteAffrows(); + if (updateOrderCostDetailList.Count() > 0) + { + foreach (var update in updateOrderCostDetailList) + update.ExecuteAffrows(); + } + insertOrderCost?.ExecuteAffrows(); + updateOrderCost?.ExecuteAffrows(); }); }