using BBWYB.Common.Log; using BBWYB.Common.Models; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Dto; using FreeSql; using System.Net.Http.Headers; using Yitter.IdGenerator; namespace BBWYB.Server.Business { public class DataRepairBusiness : BaseBusiness, IDenpendency { private KuaiDi100Manager kuaiDi100Manager; private PurchaseSchemeBusiness purchaseSchemeBusiness; public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness) : base(fsql, nLogManager, idGenerator) { this.kuaiDi100Manager = kuaiDi100Manager; this.purchaseSchemeBusiness = purchaseSchemeBusiness; } public void SubscribeKD100(string waybillNo, string targetCompanyCode) { kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); } public void SupplementPurchaserInfo() { var purlList = fsql.Select() .InnerJoin((psp, ps, p) => psp.SkuPurchaseSchemeId == ps.Id) .InnerJoin((psp, ps, p) => ps.PurchaserId == p.Id) .Where((psp, ps, p) => ps.PurchasePlatform == Enums.Platform.阿里巴巴 && string.IsNullOrEmpty(p.Id2)) .ToList((psp, ps, p) => new { //psp.PurchaseUrl, psp.PurchaseProductId, p.Id }); var groups = purlList.GroupBy(p => p.Id); Console.WriteLine(groups.Count()); IList> updatePurchaserList = new List>(); int i = 1; foreach (var group in groups) { var purchaseId = group.Key; var productId = group.Max(p => p.PurchaseProductId); Thread.Sleep(1000); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"index {i}"); Console.ResetColor(); Console.WriteLine(); var response = purchaseSchemeBusiness.GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest() { FirstApiMode = Enums.PurchaseProductAPIMode.Spider, Platform = Enums.Platform.阿里巴巴, PriceMode = Enums.PurchaseOrderMode.批发, PurchaseProductId = productId }); if (!string.IsNullOrEmpty(response?.Purchaser?.Id2)) { if (response.Purchaser.Id2.Length > 20) Console.WriteLine(response.Purchaser.Id2); var update = fsql.Update(purchaseId).Set(p => p.Id2, response.Purchaser.Id2); updatePurchaserList.Add(update); } i++; if (updatePurchaserList.Count >= 10) { fsql.Transaction(() => { foreach (var update in updatePurchaserList) update.ExecuteAffrows(); }); updatePurchaserList.Clear(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("更新数据库更新"); Console.ResetColor(); Console.WriteLine(); } } if (updatePurchaserList.Count() > 0) { fsql.Transaction(() => { foreach (var update in updatePurchaserList) update.ExecuteAffrows(); }); } } } }