Browse Source

更新采购方案报价

updatebug
shanji 2 years ago
parent
commit
c5904bd5e9
  1. 10
      BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
  2. 57
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  3. 4
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/PurcasheSkuBasicInfoRequest.cs
  4. 5
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
  5. 7
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs

10
BBWYB.Server.API/Controllers/PurchaseSchemeController.cs

@ -91,5 +91,15 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.BatchGetPurchaseSkuBasicInfo(request);
}
/// <summary>
/// 更新采购方案报价
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public IList<PurchaseSchemeResponse> RefreshPurchaseScheme([FromBody] RefreshSchemeRequest request)
{
return purchaseSchemeBusiness.RefreshPurchaseScheme(request);
}
}
}

57
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<PurchaseScheme, Purchaser>().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<PurchaseSchemeResponse> RefreshPurchaseScheme(RefreshSchemeRequest request)
{
var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
{
SchemeIdList = request.SchemeIdList
});
List<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();
foreach (var purchaseScheme in purchaseSchemeList)
{
var purchaseProductIds = purchaseScheme.PurchaseSchemeProductList.Select(p => p.PurchaseProductId).ToArray();
var purchaseSkuIds = new List<string>();
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<BatchPurchaseSkuBasicInfoParamRequest>()
{
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>(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;
}
/// <summary>
/// 获取共同拥有的采购商
/// </summary>
@ -294,5 +349,7 @@ namespace BBWYB.Server.Business
}
return list;
}
}
}

4
BBWYB.Server.Model/Dto/Request/PurchaseScheme/PurcasheSkuBasicInfoRequest.cs

@ -30,11 +30,11 @@
/// <summary>
/// 采购商品Id(采购spu)
/// </summary>
public string[] PurchaseProductIds { get; set; }
public IList<string> PurchaseProductIds { get; set; }
/// <summary>
/// 需要保留的采购SkuId,如果传递了该数组,将过滤不在该数组的采购sku
/// </summary>
public string[] PurchaseSkuIds { get; set; }
public IList<string> PurchaseSkuIds { get; set; }
}
}

5
BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs

@ -9,6 +9,11 @@ namespace BBWYB.Server.Model.Dto
/// </summary>
public long? SchemeId { get; set; }
/// <summary>
/// 采购方案Id集合
/// </summary>
public IList<long> SchemeIdList { get; set; }
public long? ShopId { get; set; }
public IList<string> SkuIdList { get; set; }

7
BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs

@ -0,0 +1,7 @@
namespace BBWYB.Server.Model.Dto
{
public class RefreshSchemeRequest
{
public IList<long> SchemeIdList { get; set; }
}
}
Loading…
Cancel
Save