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