diff --git a/BBWY.Server.Business/Extensions/OrderCostExtension.cs b/BBWY.Server.Business/Extensions/OrderCostExtension.cs index ebb571be..a3886f56 100644 --- a/BBWY.Server.Business/Extensions/OrderCostExtension.cs +++ b/BBWY.Server.Business/Extensions/OrderCostExtension.cs @@ -86,6 +86,8 @@ namespace BBWY.Server.Business.Extensions /// /// /// + /// + /// /// public static void CalculationSkuGrossProfit(this OrderCostDetail ocd, decimal skuShouldPay, @@ -94,11 +96,13 @@ namespace BBWY.Server.Business.Extensions decimal xianPinLeiDongQuan, decimal skuVenderFee, decimal jingdou, + decimal dongquan, + decimal balance, decimal platformCommissionRatio) { - var pingTaiBuTie = pingTaiChengDanYouHuiQuan + superRedEnvelope + xianPinLeiDongQuan + jingdou; + var pingTaiBuTie = pingTaiChengDanYouHuiQuan + superRedEnvelope + xianPinLeiDongQuan + jingdou + dongquan; var koudian = (skuShouldPay + pingTaiBuTie - skuVenderFee) * ocd.DeductionQuantity * platformCommissionRatio; - ocd.SkuGrossProfit = (skuShouldPay + pingTaiBuTie) * ocd.DeductionQuantity - + ocd.SkuGrossProfit = (skuShouldPay + pingTaiBuTie + balance) * ocd.DeductionQuantity - ocd.TotalCost - ocd.DeliveryExpressFreight - koudian; } } diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 50d6b73d..3a55f086 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -611,6 +611,8 @@ namespace BBWY.Server.Business orderSku.XianPinLeiDongQuan ?? 0M, orderSku.VenderFee ?? 0M, orderSku.JingDou ?? 0M, + orderSku.DongQuan ?? 0M, + orderSku.Balance ?? 0M, autoCalculationCostRequest.PlatformCommissionRatio); insertOrderCostDetailList.Add(orderCostDetail); @@ -687,6 +689,8 @@ namespace BBWY.Server.Business osku.XianPinLeiDongQuan, osku.VenderFee, osku.JingDou, + osku.DongQuan, + osku.Balance }); var avgPreferential = dbOrder.PreferentialAmount / orderSkuList.Count(); @@ -720,6 +724,8 @@ namespace BBWY.Server.Business osku.XianPinLeiDongQuan ?? 0M, osku.VenderFee ?? 0M, osku.JingDou ?? 0M, + osku.DongQuan ?? 0M, + osku.Balance ?? 0M, manualCalculationCostRequest.PlatformCommissionRatio); } } @@ -986,6 +992,8 @@ namespace BBWY.Server.Business dbOrderSku.XianPinLeiDongQuan ?? 0M, dbOrderSku.VenderFee ?? 0M, dbOrderSku.JingDou ?? 0M, + dbOrderSku.DongQuan ?? 0M, + dbOrderSku.Balance ?? 0M, relationPurchaseOrderRequestV2.PlatformCommissionRatio); } #endregion diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 0c84136c..af931816 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -273,6 +273,8 @@ namespace BBWY.Server.Business orderSku.XianPinLeiDongQuan ?? 0M, orderSku.VenderFee ?? 0M, orderSku.JingDou ?? 0M, + orderSku.DongQuan ?? 0M, + orderSku.Balance ?? 0M, createOnlinePurchaseOrderRequest.PlatformCommissionRatio); insertOrderCostDetails.Add(orderCostDetail); #endregion diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index bd7f2ee0..bd2edaa4 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -285,8 +285,8 @@ namespace BBWY.Server.Business var totalActualAmount = currentSkuOrderSkuList.Sum(osku => { - var pingtaibutie = (osku.PingTaiChengDanYouHuiQuan ?? 0M) + (osku.SuperRedEnvelope ?? 0M) + (osku.XianPinLeiDongQuan ?? 0M) + (osku.JingDou ?? 0M); - return (((osku.ShouldPay ?? 0M) - (osku.VenderFee ?? 0M) + pingtaibutie) * osku.ItemTotal) ?? 0M; + var pingtaibutie = (osku.PingTaiChengDanYouHuiQuan ?? 0M) + (osku.SuperRedEnvelope ?? 0M) + (osku.XianPinLeiDongQuan ?? 0M) + (osku.JingDou ?? 0M) + (osku.DongQuan ?? 0M); + return (((osku.ShouldPay ?? 0M) + (osku.Balance ?? 0M) - (osku.VenderFee ?? 0M) + pingtaibutie) * osku.ItemTotal) ?? 0M; }); var totalProfit = currentSpuCostDetailList.Sum(ocd => ocd.SkuGrossProfit); @@ -305,8 +305,8 @@ namespace BBWY.Server.Business //var shopProductAmount = orderSkuList.Sum(osku => osku.ItemTotal * osku.Price); var shopActualAmount = orderSkuList.Sum(osku => { - var pingtaibutie = (osku.PingTaiChengDanYouHuiQuan ?? 0M) + (osku.SuperRedEnvelope ?? 0M) + (osku.XianPinLeiDongQuan ?? 0M) + (osku.JingDou ?? 0M); - return (((osku.ShouldPay ?? 0M) - (osku.VenderFee ?? 0M) + pingtaibutie) * osku.ItemTotal) ?? 0M; + var pingtaibutie = (osku.PingTaiChengDanYouHuiQuan ?? 0M) + (osku.SuperRedEnvelope ?? 0M) + (osku.XianPinLeiDongQuan ?? 0M) + (osku.JingDou ?? 0M) + (osku.DongQuan ?? 0M); + return (((osku.ShouldPay ?? 0M) + (osku.Balance ?? 0M) - (osku.VenderFee ?? 0M) + pingtaibutie) * osku.ItemTotal) ?? 0M; }); if (noOrderSpuIdList != null && noOrderSpuIdList.Count() > 0) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 090a8403..c4efd2c7 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -815,6 +815,20 @@ namespace BBWY.Server.Business skuJingDou = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; if (skuJingDou == null) skuJingDou = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; + + decimal? skuDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.DongQuan; + if (skuDongQuan == null) + skuDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; + if (skuDongQuan == null) + skuDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; + + decimal? skuBalnace = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.Balance; + if (skuBalnace == null) + skuBalnace = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; + if (skuBalnace == null) + skuBalnace = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; #endregion //var itemPrice = orderSkuJToken.Value("jdPrice"); //sku单价 @@ -887,6 +901,8 @@ namespace BBWY.Server.Business skuXianPinLeiDongQuan ?? 0M, skuVenderFee ?? 0M, skuJingDou ?? 0M, + skuDongQuan ?? 0M, + skuBalnace ?? 0M, platformCommissionRatio); insertOrderCostDetailList.Add(orderCostDetail); } diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index c6de52c8..2afd14a1 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -235,12 +235,14 @@ namespace BBWY.Server.Business if (ocd != null) { ocd.CalculationSkuGrossProfit(orderSku.ShouldPay ?? 0M, - orderSku.PingTaiChengDanYouHuiQuan ?? 0M, - orderSku.SuperRedEnvelope ?? 0M, - orderSku.XianPinLeiDongQuan ?? 0M, - orderSku.VenderFee ?? 0M, - orderSku.JingDou ?? 0M, - shop.PlatformCommissionRatio ?? 0.05M); + orderSku.PingTaiChengDanYouHuiQuan ?? 0M, + orderSku.SuperRedEnvelope ?? 0M, + orderSku.XianPinLeiDongQuan ?? 0M, + orderSku.VenderFee ?? 0M, + orderSku.JingDou ?? 0M, + orderSku.DongQuan ?? 0M, + orderSku.Balance ?? 0M, + shop.PlatformCommissionRatio ?? 0.05M); var update = fsql.Update(ocd.Id).Set(x => x.SkuGrossProfit, ocd.SkuGrossProfit); updateOrderCostDetailList.Add(update); }