【修复】修复sku货品对应的三级分销细则存在多插入重复细则数据的问题。

This commit is contained in:
jianweie code
2023-05-16 23:39:24 +08:00
parent ac8c36aa86
commit ce8ffb7f87

View File

@@ -504,8 +504,7 @@ namespace CoreCms.Net.Repository
} }
//剩余的老数据 //剩余的老数据
var oldDataProducts = products.Where(p => oldPostProductsIds.Contains(p.id)).ToList(); var oldDataProducts = products.Where(p => oldPostProductsIds.Contains(p.id)).ToList();
var oldDistributions = await DbClient.Queryable<CoreCmsProductsDistribution>() var oldDistributions = await DbClient.Queryable<CoreCmsProductsDistribution>().Where(p => oldPostProductsIds.Contains(p.productsId)).ToListAsync();
.Where(p => oldPostProductsIds.Contains(p.productsId)).ToListAsync();
if (oldDataProducts.Any()) if (oldDataProducts.Any())
{ {
oldDataProducts.ForEach(p => oldDataProducts.ForEach(p =>
@@ -553,8 +552,10 @@ namespace CoreCms.Net.Repository
var newDt = new List<CoreCmsProductsDistribution>(); var newDt = new List<CoreCmsProductsDistribution>();
if (oldDistributions.Any()) if (oldDistributions.Any())
{ {
//获取已经存在的序列
var ids = oldDistributions.Select(p => p.productsId).ToList(); var ids = oldDistributions.Select(p => p.productsId).ToList();
var oldNoDtProduts = oldPostProducts.Where(p => ids.Contains(p.id)).ToList(); //判断货品里面是否存在三级分销细则没有对应的数据,如果存在未对应的,就新增。
var oldNoDtProduts = oldPostProducts.Where(p => !ids.Contains(p.id)).ToList();
if (oldNoDtProduts.Any()) if (oldNoDtProduts.Any())
{ {
oldNoDtProduts.ForEach(p => oldNoDtProduts.ForEach(p =>
@@ -569,20 +570,6 @@ namespace CoreCms.Net.Repository
newDt.Add(pd); newDt.Add(pd);
}); });
} }
else
{
oldPostProducts.ForEach(p =>
{
var pd = new CoreCmsProductsDistribution();
pd.createTime = DateTime.Now;
pd.productsSN = p.sn;
pd.levelOne = p.levelOne;
pd.levelTwo = p.levelTwo;
pd.levelThree = p.levelThree;
pd.productsId = p.id;
newDt.Add(pd);
});
}
} }
var upOldData = await DbClient.Updateable(oldDataProducts).ExecuteCommandHasChangeAsync(); var upOldData = await DbClient.Updateable(oldDataProducts).ExecuteCommandHasChangeAsync();