From fa0a10bc830ffb25dcaf2bcf3f88be7b82da036e Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 26 Dec 2023 21:25:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=AE=E5=A4=8D=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E5=95=86=E4=B8=BB=E8=90=A5=E7=B1=BB=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DataRepairController.cs | 9 ++++ .../DataRepair/DataRepairBusiness.cs | 51 +++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index 4e3d431..dc85ffe 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -106,5 +106,14 @@ namespace BBWYB.Server.API.Controllers { dataRepairBusiness.SyncPurchaserName(); } + + /// + /// 定时补齐采购商主营类目 + /// + [HttpPost] + public void SyncPurchaserCategory() + { + dataRepairBusiness.SyncPurchaserCategory(); + } } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index e180933..ea8c16e 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -1077,5 +1077,56 @@ namespace BBWYB.Server.Business }); } } + + public void SyncPurchaserCategory() + { + var purchaserIdList = fsql.Select() + .Where(p => !fsql.Select().Where(per => per.ExtendedType == Enums.PurchaserBasicInfoType.主营类目 && + per.PurchaserId == p.Id).Any()) + .ToList(p => p.Id); + if (purchaserIdList.Count() == 0) + return; + + var pspList = fsql.Select() + .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 insertList = new List(); + + 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(); + }); + } + + } } }