From e148cd8614fbdb21648f726b93d7f63e529282ac Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 24 Sep 2023 02:42:33 +0800 Subject: [PATCH] =?UTF-8?q?spu=E9=94=80=E9=87=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderSyncBusiness.cs | 94 ++++++++++++++----- BBWYB.Server.Model/Db/Order/OrderSku.cs | 10 +- 2 files changed, 81 insertions(+), 23 deletions(-) diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs index e278255..37bd904 100644 --- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs @@ -100,17 +100,26 @@ namespace BBWYB.Server.Business.Sync payedQTOrderIdList.Contains(t.OrderId)).ToList(); //现有sku销量 - var dbSkuTotalSakeInfoList = fsql.Select().Where(s => s.ShopId == shopId && s.IsEnabled == true && payedQTSpuIdList.Contains(s.ProductId)).ToList(); + var dbSkuTotalSaleInfoList = fsql.Select().Where(s => s.ShopId == shopId && s.IsEnabled == true && payedQTSpuIdList.Contains(s.ProductId)) + .ToList(); + + //现有spu销量 + var dbSpuTotalSaleInfoList = fsql.Select().Where(s => s.ShopId == shopId && s.IsEnabled == true && payedQTSpuIdList.Contains(s.ProductId)) + .ToList(); #region DB Operation List insertOrderList = new List(); List insertOrderSkuList = new List(); + List updateOrderSkuIdList_OptimizationFlag = new List(); List insertOrderConsigneeList = new List(); List insertTimeLimitTaskList = new List(); List deleteTimeLimitTaskOrderIdList = new List(); List> updateOrderList = new List>(); List insertSkuTotalSaleInfoList = new List(); IList updateSkuTotalSaleInfoList = new List(); + + List insertSpuTotalSaleInfoList = new List(); + IList updateSpuTotalSaleInfoList = new List(); #endregion //等待检查sku销量的订单集合 @@ -262,46 +271,82 @@ namespace BBWYB.Server.Business.Sync updateOrderList.Add(update); } } - - if (!qtOrder.IsPay) - continue; } #endregion - #region 统计sku销量 + #region 统计销量 foreach (var qtOrder in waitToCheckSkuSaleOrderList) { foreach (var qtOrderSku in qtOrder.OrderSkuList) { - var skuTotalSaleInfo = dbSkuTotalSakeInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); - if (skuTotalSaleInfo == null) + #region 统计sku销量 { - skuTotalSaleInfo = insertSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); + var skuTotalSaleInfo = dbSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); if (skuTotalSaleInfo == null) { - skuTotalSaleInfo = new SkuTotalSaleInfo() + skuTotalSaleInfo = insertSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); + if (skuTotalSaleInfo == null) { - SkuId = qtOrderSku.SkuId, - CreateTime = DateTime.Now, - IsEnabled = true, - ItemCount = 0, - ProductId = qtOrderSku.ProductId, - ShopId = shopId, - UpdateTime = DateTime.Now - }; - insertSkuTotalSaleInfoList.Add(skuTotalSaleInfo); + skuTotalSaleInfo = new SkuTotalSaleInfo() + { + SkuId = qtOrderSku.SkuId, + CreateTime = DateTime.Now, + IsEnabled = true, + ItemCount = 0, + ProductId = qtOrderSku.ProductId, + ShopId = shopId, + UpdateTime = DateTime.Now + }; + insertSkuTotalSaleInfoList.Add(skuTotalSaleInfo); + } + } + else if (!updateSkuTotalSaleInfoList.Any(s => s.SkuId == qtOrderSku.SkuId)) + { + updateSkuTotalSaleInfoList.Add(skuTotalSaleInfo); } + skuTotalSaleInfo.ItemCount += qtOrderSku.Quantity; } - else if (!updateSkuTotalSaleInfoList.Any(s => s.SkuId == qtOrderSku.SkuId)) + #endregion + + #region 统计spu销量 { - updateSkuTotalSaleInfoList.Add(skuTotalSaleInfo); + var spuTotalSaleInfo = dbSpuTotalSaleInfoList.FirstOrDefault(s => s.ProductId == qtOrderSku.ProductId); + if (spuTotalSaleInfo == null) + { + spuTotalSaleInfo = insertSpuTotalSaleInfoList.FirstOrDefault(s => s.ProductId == qtOrderSku.ProductId); + if (spuTotalSaleInfo == null) + { + spuTotalSaleInfo = new SpuTotalSaleInfo() + { + CreateTime = DateTime.Now, + IsEnabled = true, + ItemCount = 0, + ProductId = qtOrderSku.ProductId, + ShopId = shopId, + UpdateTime = DateTime.Now, + LastOptimizationItemCount = 0 + }; + insertSpuTotalSaleInfoList.Add(spuTotalSaleInfo); + } + } + else if (!updateSpuTotalSaleInfoList.Any(s => s.ProductId == qtOrderSku.ProductId)) + { + updateSpuTotalSaleInfoList.Add(spuTotalSaleInfo); + } + spuTotalSaleInfo.ItemCount += qtOrderSku.Quantity; } - skuTotalSaleInfo.ItemCount += qtOrderSku.Quantity; + #endregion } } #endregion + #region 检查待议价任务 + + #endregion + + #region 检查限时采购任务 CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList); + #endregion fsql.Transaction(() => { @@ -333,6 +378,13 @@ namespace BBWYB.Server.Business.Sync } } + /// + /// 检查限时采购任务 + /// + /// + /// + /// + /// private void CheckPurchaseTimeLimitTask(long shopId, IList orderList, IList dbTimeLimits, List insertTimeLimitTasks) { foreach (var order in orderList) diff --git a/BBWYB.Server.Model/Db/Order/OrderSku.cs b/BBWYB.Server.Model/Db/Order/OrderSku.cs index f526230..f80eaa9 100644 --- a/BBWYB.Server.Model/Db/Order/OrderSku.cs +++ b/BBWYB.Server.Model/Db/Order/OrderSku.cs @@ -104,10 +104,16 @@ namespace BBWYB.Server.Model.Db public bool? IsCheck { get; set; } /// - /// 是否需要议价 是=1 否=0 + /// 是否需要优化 是=1 否=0 /// - [Column(DbType = "int(1)", IsNullable = true)] + [Column(DbType = "int(1)", IsNullable = true)] public int? IsNeedOptimization { get; set; } = 0; + + /// + /// 是否优化完成 是=1 否=0 + /// + [Column(DbType = "int(1)", IsNullable = true)] + public int? IsOptimizationCompleted { get; set; } = 0; } }