diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index a18cacc..fb2be4e 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -40,7 +40,6 @@ namespace BBWYB.Server.Business kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); } - public void SupplementOrderSkuCost() { var orderSkuCostList = fsql.Select().InnerJoin((ocd, o) => ocd.OrderId == o.Id) @@ -510,5 +509,54 @@ namespace BBWYB.Server.Business } } } + + public void RepairHistoryItemCount() + { + List insertSpuSaleInfoList = new List(); + List insertSkuSaleInfoList = new List(); + + var noOrderStateList = new List() + { + Enums.OrderState.已取消, + Enums.OrderState.待付款 + }; + var spuSaleGroups = fsql.Select() + .InnerJoin((osku, o) => osku.OrderId == o.Id) + .Where((osku, o) => !noOrderStateList.Contains(o.OrderState)) + .GroupBy((osku, o) => new { osku.ProductId, o.ShopId }) + .ToList(g => new + { + g.Key.ProductId, + g.Key.ShopId, + ItemCount = g.Sum(g.Value.Item1.ItemTotal) + }); + + var skuSaleGroups = fsql.Select() + .InnerJoin((osku, o) => osku.OrderId == o.Id) + .Where((osku, o) => !noOrderStateList.Contains(o.OrderState)) + .GroupBy((osku, o) => new { osku.ProductId, osku.SkuId, o.ShopId }) + .ToList(g => new + { + g.Key.ProductId, + g.Key.SkuId, + g.Key.ShopId, + ItemCount = g.Sum(g.Value.Item1.ItemTotal) + }); + + foreach (var spuSale in spuSaleGroups) + { + var insertSpuSale = new SpuTotalSaleInfo() + { + ProductId = spuSale.ProductId, + ShopId = spuSale.ShopId, + CreateTime = DateTime.Now, + IsEnabled = true, + ItemCount = Convert.ToInt64(spuSale.ItemCount), + UpdateTime = DateTime.Now, + LastOptimizationItemCount = Convert.ToInt64(spuSale.ItemCount), + LastOptimizationTime = DateTime.Now + }; + } + } } }