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