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();
+ });
+ }
+
+ }
}
}