From d73275b477e091ed943003c9ad10f78b93896cef Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 12 Dec 2023 22:00:47 +0800 Subject: [PATCH] 1 --- BBWY.Server.Business/TestBusiness.cs | 55 ++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index f3fe4fa4..257ecb48 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -274,17 +274,20 @@ namespace BBWY.Server.Business public void RepairOrderProfit() { - var startTime = DateTime.Parse("2023-11-01"); - var orderList = fsql.Select().Where(o => o.PingTaiChengDanYouHuiQuan > 0 && - o.IsGift == false && + var startTime = DateTime.Parse("2023-12-12"); + var orderList = fsql.Select().Where(o => o.IsGift == false && o.OrderState != Enums.OrderState.已取消 && - o.StorageType == Enums.StorageType.代发 && + o.StorageType == Enums.StorageType.本地自发 && o.StartTime >= startTime) .ToList(); - + var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); var orderIdList = orderList.Select(o => o.Id).ToList(); var orderCostList = fsql.Select(orderIdList).ToList(); + var orderSkuList = fsql.Select().Where(osku => orderIdList.Contains(osku.OrderId) && osku.Price > 0).ToList(); + var orderCostDetailList = fsql.Select().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true && ocd.IsEstimateCost == false).ToList(); + List> updateList = new List>(); + List> updateDetailList = new List>(); int index = 0; foreach (var orderCost in orderCostList) { @@ -293,9 +296,41 @@ namespace BBWY.Server.Business var order = orderList.FirstOrDefault(o => o.Id == orderCost.OrderId); if (order == null) continue; + + var shop = shopList.FirstOrDefault(s => s.ShopId == order.ShopId.ToString()); + + var currentOCDList = orderCostDetailList.Where(ocd => ocd.OrderId == orderCost.OrderId).ToList(); + var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == orderCost.OrderId).ToList(); + foreach (var ocd in currentOCDList) + { + var osku = currentOrderSkuList.FirstOrDefault(x => x.SkuId == ocd.SkuId); + if (osku == null) + continue; + ocd.CalculationSkuGrossProfit(osku.ShouldPay ?? 0M, + osku.PingTaiChengDanYouHuiQuan ?? 0M, + osku.SuperRedEnvelope ?? 0M, + osku.XianPinLeiDongQuan ?? 0M, + osku.VenderFee ?? 0M, + osku.JingDou ?? 0M, + osku.DongQuan ?? 0M, + osku.Balance ?? 0M, + shop.PlatformCommissionRatio ?? 0.05M); + var update = fsql.Update().SetSource(ocd); + updateDetailList.Add(update); + } + + orderCost.PurchaseAmount = currentOCDList.Sum(ocd => ocd.TotalCost); + orderCost.DeliveryExpressFreight = currentOCDList.Sum(ocd => ocd.DeliveryExpressFreight); + orderCost.CalculationOrderProfitAndCost(order, null); - updateList.Add(fsql.Update(orderCost.OrderId).Set(oc => oc.Profit, orderCost.Profit) - .Set(oc => oc.PlatformCommissionAmount, orderCost.PlatformCommissionAmount)); + updateList.Add(fsql.Update(orderCost.OrderId) + .Set(oc => oc.PurchaseAmount, orderCost.PurchaseAmount) + .Set(oc => oc.DeliveryExpressFreight, orderCost.DeliveryExpressFreight) + .Set(oc => oc.Profit, orderCost.Profit) + .Set(oc => oc.PlatformCommissionAmount, orderCost.PlatformCommissionAmount)); + + + if (updateList.Count() > 10) { Console.WriteLine($"{DateTime.Now} 执行数据库更新"); @@ -303,8 +338,11 @@ namespace BBWY.Server.Business { foreach (var update in updateList) update.ExecuteAffrows(); + foreach (var update in updateDetailList) + update.ExecuteAffrows(); }); updateList.Clear(); + updateDetailList.Clear(); } } @@ -315,8 +353,11 @@ namespace BBWY.Server.Business { foreach (var update in updateList) update.ExecuteAffrows(); + foreach (var update in updateDetailList) + update.ExecuteAffrows(); }); updateList.Clear(); + updateDetailList.Clear(); } }