diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index b22b880..45e944e 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -547,14 +547,34 @@ namespace BBWYB.Server.Business var order = orderListResponse.Items.FirstOrDefault(); var orderCost = fsql.Select(request.OrderId).ToOne(); + var orderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == request.OrderId && ocd.IsEnabled == true).ToList(); IList> updates_orderSku = new List>(); IUpdate updateOrderCost = null; + IList> updateOrderCostDetailList = new List>(); + + foreach (var orderSku in order.OrderSkuList) { updates_orderSku.Add(fsql.Update(orderSku.Id).Set(osku => osku.Price, orderSku.SkuPrice) .Set(osku => osku.BuyerPayFreight, orderSku.FreightAmount) .Set(osku => osku.InPackAmount, orderSku.PackAmount)); + + var ocdList = orderCostDetailList.Where(ocd => ocd.SkuId == orderSku.SkuId).ToList(); + if (ocdList != null && ocdList.Count()>0) + { + foreach (var orderCostDetail in ocdList) + { + orderCostDetail.CalculationOrderCostDetailCostAndProfit(orderSku.SkuPrice * orderSku.Quantity, + orderSku.FreightAmount, + orderSku.PackAmount, + orderCostDetail.SkuAmount ?? 0M, + orderCostDetail.PurchaseFreight ?? 0M, + orderCostDetail.OutPackAmount ?? 0M, + orderCostDetail.DeliveryExpressFreight ?? 0M); + updateOrderCostDetailList.Add(fsql.Update(orderCostDetail.Id).Set(ocd => ocd.Profit, orderCostDetail.Profit)); + } + } } if (orderCost != null) @@ -573,6 +593,7 @@ namespace BBWYB.Server.Business fsql.Update(request.OrderId).Set(o => o.OrderTotalPrice, order.OrderTotalAmount) .Set(o => o.OrderSellerPrice, order.OrderProductAmount) .Set(o => o.FreightPrice, order.FreightAmount) + .Set(o => o.InPackAmount, order.PackAmount) .ExecuteAffrows(); updateOrderCost?.ExecuteAffrows(); @@ -581,6 +602,11 @@ namespace BBWYB.Server.Business foreach (var update in updates_orderSku) update.ExecuteAffrows(); } + if (updateOrderCostDetailList.Count() > 0) + { + foreach (var update in updateOrderCostDetailList) + update.ExecuteAffrows(); + } }); #region 通知C端 diff --git a/QuanTan.SDK/Models/Supplier/Request/Order/QuanTan_Supplier_EditPriceRequest.cs b/QuanTan.SDK/Models/Supplier/Request/Order/QuanTan_Supplier_EditPriceRequest.cs index 203ad72..35c2f21 100644 --- a/QuanTan.SDK/Models/Supplier/Request/Order/QuanTan_Supplier_EditPriceRequest.cs +++ b/QuanTan.SDK/Models/Supplier/Request/Order/QuanTan_Supplier_EditPriceRequest.cs @@ -22,8 +22,13 @@ public decimal price { get; set; } /// - /// Sku总运费 + /// Sku运费 /// public decimal postagePrice { get; set; } + + /// + /// 单个订单商品的打包费 + /// + public decimal packingChargeSingle { get; set; } } } diff --git a/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs b/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs index 63e927a..590be55 100644 --- a/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs +++ b/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs @@ -216,7 +216,8 @@ namespace SDKAdapter.OperationPlatform.Client { orderProductId = item.OrderSkuId, postagePrice = item.Freight, - price = item.Price + price = item.Price, + packingChargeSingle = item.InPackAmountPrice }).ToList() }, request.AppKey, request.AppSecret); diff --git a/SDKAdapter/OperationPlatform/Models/Request/Order/OP_EditPriceRequest.cs b/SDKAdapter/OperationPlatform/Models/Request/Order/OP_EditPriceRequest.cs index 9cbe0b2..a0effe9 100644 --- a/SDKAdapter/OperationPlatform/Models/Request/Order/OP_EditPriceRequest.cs +++ b/SDKAdapter/OperationPlatform/Models/Request/Order/OP_EditPriceRequest.cs @@ -10,26 +10,32 @@ public class OP_EditPriceSkuRequest { /// - /// 订单Sku商品Id + /// 订单Sku对象Id主键 /// public string OrderSkuId { get; set; } - public string SkuId { get; set; } /// - /// 单价 + /// sku单价 /// public decimal Price { get; set; } + /// - /// 数量 + /// sku打包费单价 /// - public int Quantity { get; set; } + public decimal InPackAmountPrice { get; set; } + + ///// + ///// 数量 + ///// + //public int Quantity { get; set; } /// - /// 运费 + /// 单笔sku的订单运费(用户支付运费) /// public decimal Freight { get; set; } + } }