From b2c06a9ba7c086507149c985f8b361c48e31cdf7 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 26 Apr 2023 13:45:13 +0800 Subject: [PATCH] =?UTF-8?q?Sku=E5=88=A0=E9=99=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/ProductSyncBusiness.cs | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/BBWY.Server.Business/Sync/ProductSyncBusiness.cs b/BBWY.Server.Business/Sync/ProductSyncBusiness.cs index deca5696..4d268fc1 100644 --- a/BBWY.Server.Business/Sync/ProductSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/ProductSyncBusiness.cs @@ -68,6 +68,7 @@ namespace BBWY.Server.Business.Sync List inserSkuList = new List(); List> updateProductSkuList = new List>(); + List deletedSkuIdList = new List(); var productIds = productList.Items.Select(p => p.Id); var dbProducts = fsql.Select().Where(p => p.ShopId == shopId && productIds.Contains(p.Id)).ToList(); @@ -89,6 +90,13 @@ namespace BBWY.Server.Business.Sync }); if (skuList == null || skuList.Count() == 0) continue; + + //排查已删除的sku + var currentDbSkus = dbProductSkus.Where(dbsku => dbsku.ProductId == product.Id).ToList(); + var deletedSkuList = currentDbSkus.Where(dbsku => skuList.Count(s => s.Id == dbsku.Id) == 0).ToList(); + if (deletedSkuList.Count() > 0) + deletedSkuIdList.AddRange(deletedSkuList.Select(dbsku => dbsku.Id)); + foreach (var sku in skuList) { var categoryId = sku.Source.Value("categoryId"); @@ -159,6 +167,8 @@ namespace BBWY.Server.Business.Sync if (updateProductSkuList.Count > 0) foreach (var update in updateProductSkuList) update.ExecuteAffrows(); + if (deletedSkuIdList.Count() > 0) + fsql.Delete(deletedSkuIdList).ExecuteAffrows(); }); } @@ -179,7 +189,8 @@ namespace BBWY.Server.Business.Sync AppKey = shop.AppKey, AppSecret = shop.AppSecret, AppToken = shop.AppToken, - Platform = shop.PlatformId + Platform = shop.PlatformId, + Spu = "10021182557318" }; while (true) { @@ -219,11 +230,11 @@ namespace BBWY.Server.Business.Sync public void SyncAllShopAllProduct() { var shopList = venderBusiness.GetShopList(); - //SyncProduct(shopList.FirstOrDefault(s => s.ShopName == "奥德汽车用品专营店"), true); - foreach (var shop in shopList) - { - Task.Factory.StartNew(() => SyncProduct(shop, true), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.ProductSyncTaskScheduler); - } + SyncProduct(shopList.FirstOrDefault(s => s.ShopName == "趣弈手机配件专营店"), true); + //foreach (var shop in shopList) + //{ + // Task.Factory.StartNew(() => SyncProduct(shop, true), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.ProductSyncTaskScheduler); + //} } } }