|
@ -274,17 +274,20 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
|
public void RepairOrderProfit() |
|
|
public void RepairOrderProfit() |
|
|
{ |
|
|
{ |
|
|
var startTime = DateTime.Parse("2023-11-01"); |
|
|
var startTime = DateTime.Parse("2023-12-12"); |
|
|
var orderList = fsql.Select<Order>().Where(o => o.PingTaiChengDanYouHuiQuan > 0 && |
|
|
var orderList = fsql.Select<Order>().Where(o => o.IsGift == false && |
|
|
o.IsGift == false && |
|
|
|
|
|
o.OrderState != Enums.OrderState.已取消 && |
|
|
o.OrderState != Enums.OrderState.已取消 && |
|
|
o.StorageType == Enums.StorageType.代发 && |
|
|
o.StorageType == Enums.StorageType.本地自发 && |
|
|
o.StartTime >= startTime) |
|
|
o.StartTime >= startTime) |
|
|
.ToList(); |
|
|
.ToList(); |
|
|
|
|
|
var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); |
|
|
var orderIdList = orderList.Select(o => o.Id).ToList(); |
|
|
var orderIdList = orderList.Select(o => o.Id).ToList(); |
|
|
var orderCostList = fsql.Select<OrderCost>(orderIdList).ToList(); |
|
|
var orderCostList = fsql.Select<OrderCost>(orderIdList).ToList(); |
|
|
|
|
|
var orderSkuList = fsql.Select<OrderSku>().Where(osku => orderIdList.Contains(osku.OrderId) && osku.Price > 0).ToList(); |
|
|
|
|
|
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true && ocd.IsEstimateCost == false).ToList(); |
|
|
|
|
|
|
|
|
List<IUpdate<OrderCost>> updateList = new List<IUpdate<OrderCost>>(); |
|
|
List<IUpdate<OrderCost>> updateList = new List<IUpdate<OrderCost>>(); |
|
|
|
|
|
List<IUpdate<OrderCostDetail>> updateDetailList = new List<IUpdate<OrderCostDetail>>(); |
|
|
int index = 0; |
|
|
int index = 0; |
|
|
foreach (var orderCost in orderCostList) |
|
|
foreach (var orderCost in orderCostList) |
|
|
{ |
|
|
{ |
|
@ -293,9 +296,41 @@ namespace BBWY.Server.Business |
|
|
var order = orderList.FirstOrDefault(o => o.Id == orderCost.OrderId); |
|
|
var order = orderList.FirstOrDefault(o => o.Id == orderCost.OrderId); |
|
|
if (order == null) |
|
|
if (order == null) |
|
|
continue; |
|
|
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<OrderCostDetail>().SetSource(ocd); |
|
|
|
|
|
updateDetailList.Add(update); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
orderCost.PurchaseAmount = currentOCDList.Sum(ocd => ocd.TotalCost); |
|
|
|
|
|
orderCost.DeliveryExpressFreight = currentOCDList.Sum(ocd => ocd.DeliveryExpressFreight); |
|
|
|
|
|
|
|
|
orderCost.CalculationOrderProfitAndCost(order, null); |
|
|
orderCost.CalculationOrderProfitAndCost(order, null); |
|
|
updateList.Add(fsql.Update<OrderCost>(orderCost.OrderId).Set(oc => oc.Profit, orderCost.Profit) |
|
|
updateList.Add(fsql.Update<OrderCost>(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)); |
|
|
.Set(oc => oc.PlatformCommissionAmount, orderCost.PlatformCommissionAmount)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (updateList.Count() > 10) |
|
|
if (updateList.Count() > 10) |
|
|
{ |
|
|
{ |
|
|
Console.WriteLine($"{DateTime.Now} 执行数据库更新"); |
|
|
Console.WriteLine($"{DateTime.Now} 执行数据库更新"); |
|
@ -303,8 +338,11 @@ namespace BBWY.Server.Business |
|
|
{ |
|
|
{ |
|
|
foreach (var update in updateList) |
|
|
foreach (var update in updateList) |
|
|
update.ExecuteAffrows(); |
|
|
update.ExecuteAffrows(); |
|
|
|
|
|
foreach (var update in updateDetailList) |
|
|
|
|
|
update.ExecuteAffrows(); |
|
|
}); |
|
|
}); |
|
|
updateList.Clear(); |
|
|
updateList.Clear(); |
|
|
|
|
|
updateDetailList.Clear(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -315,8 +353,11 @@ namespace BBWY.Server.Business |
|
|
{ |
|
|
{ |
|
|
foreach (var update in updateList) |
|
|
foreach (var update in updateList) |
|
|
update.ExecuteAffrows(); |
|
|
update.ExecuteAffrows(); |
|
|
|
|
|
foreach (var update in updateDetailList) |
|
|
|
|
|
update.ExecuteAffrows(); |
|
|
}); |
|
|
}); |
|
|
updateList.Clear(); |
|
|
updateList.Clear(); |
|
|
|
|
|
updateDetailList.Clear(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|