From 8170e10e7c219ff0dc7b16a31014d8f2d631853e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 25 Dec 2023 16:55:38 +0800 Subject: [PATCH] 1 --- .../Controllers/DataRepairController.cs | 6 +++ .../DataRepair/DataRepairBusiness.cs | 45 +++++++++++++++++-- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index f51502a..4e3d431 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -100,5 +100,11 @@ namespace BBWYB.Server.API.Controllers [HttpPost] public void SyncProductCategory() { dataRepairBusiness.SyncProductCategory(); } + + [HttpPost] + public void SyncPurchaserName() + { + dataRepairBusiness.SyncPurchaserName(); + } } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index a1f7f68..e0f353c 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -1002,7 +1002,7 @@ namespace BBWYB.Server.Business } - public void SuncPurchaserName() + public void SyncPurchaserName() { List> updatePurchaserList = new List>(); var dbPurchaserList = fsql.Select().ToList(); @@ -1013,8 +1013,12 @@ namespace BBWYB.Server.Business .From() .InnerJoin((psp2, psp1) => psp2.MaxId == psp1.Id) .ToList((psp2, psp1) => psp1); + var index = 0; foreach (var psp in pspList) { + index++; + Console.WriteLine($"Scaning PurchaserProduct {psp.PurchaseProductId},PurchaserId {psp.PurchaserId},{index}/{pspList.Count()}"); + Thread.Sleep(1000); var data = purchaseSchemeBusiness.GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest() { FirstApiMode = Enums.PurchaseProductAPIMode.Spider, @@ -1022,7 +1026,7 @@ namespace BBWYB.Server.Business Platform = Enums.Platform.阿里巴巴, PurchaseProductId = psp.PurchaseProductId, }); - if (data == null) + if (data == null || data.IsInvalid == true || data.Purchaser == null) continue; var dbPurchaser = dbPurchaserList.FirstOrDefault(p => p.Id == data.Purchaser.Id); if (dbPurchaser == null) @@ -1030,11 +1034,44 @@ namespace BBWYB.Server.Business if (dbPurchaser.Name != data.Purchaser.Name || dbPurchaser.Id2 != data.Purchaser.Id2 || dbPurchaser.MemberId != data.Purchaser.MemberId || + dbPurchaser.Location != data.Purchaser.Location || dbPurchaser.Tag != data.Purchaser.Tag) - { - + { + var update = fsql.Update(dbPurchaser.Id) + .SetIf(dbPurchaser.Name != data.Purchaser.Name, p => p.Name, data.Purchaser.Name) + .SetIf(dbPurchaser.Id2 != data.Purchaser.Id2, p => p.Id2, data.Purchaser.Id2) + .SetIf(dbPurchaser.MemberId != data.Purchaser.MemberId, p => p.MemberId, data.Purchaser.MemberId) + .SetIf(dbPurchaser.Location != data.Purchaser.Location, p => p.Location, data.Purchaser.Location) + .SetIf(dbPurchaser.Tag != data.Purchaser.Tag, p => p.Tag, data.Purchaser.Tag); + updatePurchaserList.Add(update); + } + } + + List> tempUpdateList = new List>(); + for (var i = 0; i < updatePurchaserList.Count(); i++) + { + tempUpdateList.Add(updatePurchaserList[i]); + if (tempUpdateList.Count() == 10) + { + Console.WriteLine($"{DateTime.Now},{i}/{updatePurchaserList.Count()},执行数据库更新"); + fsql.Transaction(() => + { + foreach (var update in tempUpdateList) + update.ExecuteAffrows(); + }); + tempUpdateList.Clear(); } } + + if (tempUpdateList.Count() > 0) + { + Console.WriteLine($"{DateTime.Now},最后执行数据库更新"); + fsql.Transaction(() => + { + foreach (var update in tempUpdateList) + update.ExecuteAffrows(); + }); + } } } }