Browse Source

修复数据

yijia
shanji 2 years ago
parent
commit
d34c1c2bbe
  1. 49
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  2. 1
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  3. 21
      BBWYB.Server.Model/Db/PurchaseScheme/PurchasesSchemeGroupIndex.cs

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

@ -140,7 +140,15 @@ namespace BBWYB.Server.Business
public void SupplementPurchaseSchemeGroup() public void SupplementPurchaseSchemeGroup()
{ {
fsql.Transaction(() =>
{
fsql.Delete<PurchaseSchemeGroup>().Where(psg => 1 == 1).ExecuteAffrows();
fsql.Delete<PurchaseSchemeGroupIndex>().Where(psgi => 1 == 1).ExecuteAffrows();
fsql.Update<PurchaseScheme>().Set(ps => ps.SchemeGroupId == 0).Where(ps => 1 == 1).ExecuteAffrows();
});
List<PurchaseSchemeGroup> insertSchemeGroups = new List<PurchaseSchemeGroup>(); List<PurchaseSchemeGroup> insertSchemeGroups = new List<PurchaseSchemeGroup>();
List<PurchaseSchemeGroupIndex> insertSchemeGroupIndexs = new List<PurchaseSchemeGroupIndex>();
Queue<IUpdate<PurchaseScheme>> updatePurchaseSchemeQueue = new Queue<IUpdate<PurchaseScheme>>(); Queue<IUpdate<PurchaseScheme>> updatePurchaseSchemeQueue = new Queue<IUpdate<PurchaseScheme>>();
var purchaseSchemeList = fsql.Select<PurchaseScheme>().OrderBy(ps => ps.Id).ToList(); var purchaseSchemeList = fsql.Select<PurchaseScheme>().OrderBy(ps => ps.Id).ToList();
@ -151,9 +159,18 @@ namespace BBWYB.Server.Business
var purchaseSchemeSkuGroups = purchaseSchemeSpuGroup.GroupBy(ps => ps.SkuId); var purchaseSchemeSkuGroups = purchaseSchemeSpuGroup.GroupBy(ps => ps.SkuId);
var maxPsGroupCount = purchaseSchemeSkuGroups.Max(g => g.Count()); //该spu最大的采购分组数 var maxPsGroupCount = purchaseSchemeSkuGroups.Max(g => g.Count()); //该spu最大的采购分组数
var groupIndex = new PurchaseSchemeGroupIndex()
{
CreateTime = DateTime.Now,
Index = maxPsGroupCount,
ShopId = purchaseSchemeSpuGroup.First().ShopId,
ProductId = purchaseSchemeSpuGroup.First().ProductId
};
insertSchemeGroupIndexs.Add(groupIndex);
for (var i = 0; i < maxPsGroupCount; i++) for (var i = 0; i < maxPsGroupCount; i++)
{ {
Console.WriteLine($"正在处理第{i}组"); Console.WriteLine($"正在处理第{i + 1}组");
IList<PurchaseScheme> currentIndexSchemeList = new List<PurchaseScheme>(); IList<PurchaseScheme> currentIndexSchemeList = new List<PurchaseScheme>();
//取每个sku的第i个方案 //取每个sku的第i个方案
foreach (var purchaseSchemeSkuGroup in purchaseSchemeSkuGroups) foreach (var purchaseSchemeSkuGroup in purchaseSchemeSkuGroups)
@ -166,22 +183,20 @@ namespace BBWYB.Server.Business
currentIndexSchemeList.Add(scheme); currentIndexSchemeList.Add(scheme);
} }
} }
var schemeGroupId = currentIndexSchemeList.FirstOrDefault(ps => ps.SchemeGroupId != null)?.SchemeGroupId;
if (schemeGroupId == null || schemeGroupId == 0) var schemeGroupId = idGenerator.NewLong();
var insertSchemeGroup = new PurchaseSchemeGroup()
{ {
schemeGroupId = idGenerator.NewLong(); Id = schemeGroupId,
//同位中没有分组 //GroupName = schemeGroupId.Value.ToString(),
var insertSchemeGroup = new PurchaseSchemeGroup() GroupName = $"{purchaseSchemeSpuGroup.Key}-{i + 1}",
{ CreateTime = DateTime.Now,
Id = schemeGroupId.Value, ProductId = currentIndexSchemeList.First().ProductId,
//GroupName = schemeGroupId.Value.ToString(), ShopId = currentIndexSchemeList.First().ShopId
GroupName = $"{purchaseSchemeSpuGroup.Key}-{schemeGroupId.Value}", };
CreateTime = DateTime.Now, insertSchemeGroups.Add(insertSchemeGroup);
ProductId = currentIndexSchemeList.First().ProductId,
ShopId = currentIndexSchemeList.First().ShopId
};
insertSchemeGroups.Add(insertSchemeGroup);
}
foreach (var purchaseScheme in currentIndexSchemeList) foreach (var purchaseScheme in currentIndexSchemeList)
{ {
if (purchaseScheme.SchemeGroupId != schemeGroupId) if (purchaseScheme.SchemeGroupId != schemeGroupId)
@ -197,6 +212,8 @@ namespace BBWYB.Server.Business
{ {
if (insertSchemeGroups.Count() > 0) if (insertSchemeGroups.Count() > 0)
fsql.Insert(insertSchemeGroups).ExecuteAffrows(); fsql.Insert(insertSchemeGroups).ExecuteAffrows();
if (insertSchemeGroupIndexs.Count() > 0)
fsql.Insert(insertSchemeGroupIndexs).ExecuteAffrows();
}); });
var updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>(); var updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();

1
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -56,7 +56,6 @@ namespace BBWYB.Server.Business
}); });
} }
} }
} }
} }

21
BBWYB.Server.Model/Db/PurchaseScheme/PurchasesSchemeGroupIndex.cs

@ -0,0 +1,21 @@
using FreeSql.DataAnnotations;
using Newtonsoft.Json;
namespace BBWYB.Server.Model.Db
{
[Table(Name = "purchaseschemegroupindex", DisableSyncStructure = true)]
public partial class PurchaseSchemeGroupIndex
{
[Column(IsPrimary = true)]
public string ProductId { get; set; }
public DateTime? CreateTime { get; set; }
public int? Index { get; set; }
public long? ShopId { get; set; }
}
}
Loading…
Cancel
Save