Browse Source

批量修复采购商主营类目

liangku_skuoptimazation
shanji 1 year ago
parent
commit
fa0a10bc83
  1. 9
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 51
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

9
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -106,5 +106,14 @@ namespace BBWYB.Server.API.Controllers
{ {
dataRepairBusiness.SyncPurchaserName(); dataRepairBusiness.SyncPurchaserName();
} }
/// <summary>
/// 定时补齐采购商主营类目
/// </summary>
[HttpPost]
public void SyncPurchaserCategory()
{
dataRepairBusiness.SyncPurchaserCategory();
}
} }
} }

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

@ -1077,5 +1077,56 @@ namespace BBWYB.Server.Business
}); });
} }
} }
public void SyncPurchaserCategory()
{
var purchaserIdList = fsql.Select<Purchaser>()
.Where(p => !fsql.Select<Purchaser_ExtendedInfo_Relation>().Where(per => per.ExtendedType == Enums.PurchaserBasicInfoType. &&
per.PurchaserId == p.Id).Any())
.ToList(p => p.Id);
if (purchaserIdList.Count() == 0)
return;
var pspList = fsql.Select<PurchaseSchemeProduct, Product>()
.InnerJoin((psp, p) => psp.ProductId == p.Id)
.Where((psp, p) => p.CategoryId != null && purchaserIdList.Contains(psp.PurchaserId))
.ToList((psp, p) => new
{
psp.PurchaserId,
psp.ProductId,
p.CategoryId
});
if (pspList.Count() == 0)
return;
List<Purchaser_ExtendedInfo_Relation> insertList = new List<Purchaser_ExtendedInfo_Relation>();
foreach (var purchaserId in purchaserIdList)
{
var currentPspList = pspList.Where(x => x.PurchaserId == purchaserId).ToList();
if (currentPspList.Count() > 0)
{
var categoryList = currentPspList.GroupBy(x => x.CategoryId).Select(g => new Purchaser_ExtendedInfo_Relation()
{
Id = idGenerator.NewLong(),
ExtendedInfoId = g.Key,
ExtendedType = Enums.PurchaserBasicInfoType.,
PurchaserId = purchaserId
}).ToList();
insertList.AddRange(categoryList);
Console.WriteLine($"insert count {insertList.Count()}");
}
}
if (insertList.Count() > 0)
{
fsql.Transaction(() =>
{
fsql.Insert(insertList).ExecuteAffrows();
});
}
}
} }
} }

Loading…
Cancel
Save