【修复】修复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 oldDistributions = await DbClient.Queryable<CoreCmsProductsDistribution>()
.Where(p => oldPostProductsIds.Contains(p.productsId)).ToListAsync();
var oldDistributions = await DbClient.Queryable<CoreCmsProductsDistribution>().Where(p => oldPostProductsIds.Contains(p.productsId)).ToListAsync();
if (oldDataProducts.Any())
{
oldDataProducts.ForEach(p =>
@@ -553,8 +552,10 @@ namespace CoreCms.Net.Repository
var newDt = new List<CoreCmsProductsDistribution>();
if (oldDistributions.Any())
{
//获取已经存在的序列
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())
{
oldNoDtProduts.ForEach(p =>
@@ -569,20 +570,6 @@ namespace CoreCms.Net.Repository
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();