Browse Source

1

liangku_skuoptimazation
shanji 1 year ago
parent
commit
8170e10e7c
  1. 6
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 41
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

6
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();
}
}
}

41
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -1002,7 +1002,7 @@ namespace BBWYB.Server.Business
}
public void SuncPurchaserName()
public void SyncPurchaserName()
{
List<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>();
var dbPurchaserList = fsql.Select<Purchaser>().ToList();
@ -1013,8 +1013,12 @@ namespace BBWYB.Server.Business
.From<PurchaseSchemeProduct>()
.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<Purchaser>(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<IUpdate<Purchaser>> tempUpdateList = new List<IUpdate<Purchaser>>();
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();
});
}
}
}
}

Loading…
Cancel
Save