From c5904bd5e9b535eb033542c2304a0f763e64054e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sat, 20 May 2023 19:16:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=87=87=E8=B4=AD=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E6=8A=A5=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseSchemeController.cs | 10 ++++ .../PurchaseScheme/PurchaseSchemeBusiness.cs | 57 +++++++++++++++++++ .../PurcasheSkuBasicInfoRequest.cs | 4 +- .../PurchaseScheme/QuerySchemeRequest.cs | 5 ++ .../PurchaseScheme/RefreshSchemeRequest.cs | 7 +++ 5 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs index 0ab18a8..8e519e6 100644 --- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs +++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs @@ -91,5 +91,15 @@ namespace BBWYB.Server.API.Controllers return purchaseSchemeBusiness.BatchGetPurchaseSkuBasicInfo(request); } + /// + /// 更新采购方案报价 + /// + /// + /// + [HttpPost] + public IList RefreshPurchaseScheme([FromBody] RefreshSchemeRequest request) + { + return purchaseSchemeBusiness.RefreshPurchaseScheme(request); + } } } diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 6fc0f47..54d8390 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -4,6 +4,7 @@ using BBWYB.Common.Models; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Dto; +using FreeSql; using Yitter.IdGenerator; namespace BBWYB.Server.Business @@ -145,6 +146,8 @@ namespace BBWYB.Server.Business var select = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id); if (querySchemeRequest.SchemeId != null && querySchemeRequest.SchemeId != 0) select = select.Where((ps, p) => ps.Id == querySchemeRequest.SchemeId); + else if (querySchemeRequest.SchemeIdList != null && querySchemeRequest.SchemeIdList.Count() > 0) + select = select.Where((ps, p) => querySchemeRequest.SchemeIdList.Contains(ps.Id)); else { select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, (ps, p) => ps.ShopId == querySchemeRequest.ShopId) @@ -198,6 +201,58 @@ namespace BBWYB.Server.Business return purchaseSchemeList; } + public IList RefreshPurchaseScheme(RefreshSchemeRequest request) + { + var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest() + { + SchemeIdList = request.SchemeIdList + }); + List> updatePurchaseSchemeList = new List>(); + foreach (var purchaseScheme in purchaseSchemeList) + { + var purchaseProductIds = purchaseScheme.PurchaseSchemeProductList.Select(p => p.PurchaseProductId).ToArray(); + var purchaseSkuIds = new List(); + foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList) + { + purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId)); + } + + var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest() + { + FirstApiMode = Enums.PurchaseProductAPIMode.Spider, + PriceMode = Enums.PurchaseOrderMode.批发, + Params = new List() + { + new BatchPurchaseSkuBasicInfoParamRequest() + { + Platform = purchaseScheme.PurchasePlatform, + PurchaseProductIds = purchaseProductIds, + PurchaseSkuIds = purchaseSkuIds + } + } + }); + + var amount = purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price)); + if (purchaseScheme.DefaultCost != amount) + { + purchaseScheme.DefaultCost = amount; + var update = fsql.Update(purchaseScheme.Id).Set(p => p.DefaultCost, amount); + updatePurchaseSchemeList.Add(update); + } + } + + if (updatePurchaseSchemeList.Count() > 0) + { + fsql.Transaction(() => + { + foreach (var update in updatePurchaseSchemeList) + update.ExecuteAffrows(); + }); + } + + return purchaseSchemeList; + } + /// /// 获取共同拥有的采购商 /// @@ -294,5 +349,7 @@ namespace BBWYB.Server.Business } return list; } + + } } diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/PurcasheSkuBasicInfoRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/PurcasheSkuBasicInfoRequest.cs index f553594..327116c 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/PurcasheSkuBasicInfoRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/PurcasheSkuBasicInfoRequest.cs @@ -30,11 +30,11 @@ /// /// 采购商品Id(采购spu) /// - public string[] PurchaseProductIds { get; set; } + public IList PurchaseProductIds { get; set; } /// /// 需要保留的采购SkuId,如果传递了该数组,将过滤不在该数组的采购sku /// - public string[] PurchaseSkuIds { get; set; } + public IList PurchaseSkuIds { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs index abeb2fd..59e2088 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs @@ -9,6 +9,11 @@ namespace BBWYB.Server.Model.Dto /// public long? SchemeId { get; set; } + /// + /// 采购方案Id集合 + /// + public IList SchemeIdList { get; set; } + public long? ShopId { get; set; } public IList SkuIdList { get; set; } diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs new file mode 100644 index 0000000..a4f0a20 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs @@ -0,0 +1,7 @@ +namespace BBWYB.Server.Model.Dto +{ + public class RefreshSchemeRequest + { + public IList SchemeIdList { get; set; } + } +}