diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs index 1b7f63d..603b653 100644 --- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs +++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs @@ -182,9 +182,20 @@ namespace BBWYB.Server.API.Controllers /// /// [HttpPost("{schemeId}")] - public void SetFirstPurchaseScheme([FromRoute]long schemeId) + public void SetFirstPurchaseScheme([FromRoute] long schemeId) { purchaseSchemeBusiness.SetFirstPurchaseScheme(schemeId); } + + /// + /// 查询同spu同采购商的其他配件接口,排除失效配件 + /// + /// + /// + [HttpPost] + public IList QuerySameSpuAndSamePurchaserOtherPurchaseSkuList([FromBody] QuerySameSpuAndSamePurchaserOtherPurchaseSkuRequest request) + { + return purchaseSchemeBusiness.QuerySameSpuAndSamePurchaserOtherPurchaseSkuList(request); + } } } diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index f3ffbde..d5feb4e 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -938,14 +938,14 @@ namespace BBWYB.Server.Business var list = new List(); foreach (var param in request.Params) { - foreach (var purchaseId in param.PurchaseProductIds) + foreach (var pId in param.PurchaseProductIds) { var response = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest() { FirstApiMode = request.FirstApiMode, PriceMode = request.PriceMode, Platform = param.Platform, - PurchaseProductId = purchaseId + PurchaseProductId = pId }); if (response != null) { @@ -1106,17 +1106,6 @@ namespace BBWYB.Server.Business } defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Sum(pss => ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1)); - - //foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList) - //{ - // if (schemeProductSku.SkuId == request.SkuId && - // schemeProductSku.PurchaseSkuId == request.PurchaseSkuId) - // { - // schemeProductSku.PurchaseRatio = request.Ratio; - // pssId = schemeProductSku.Id; - // } - // defaultCost += ((schemeProductSku.ActualPrice ?? schemeProductSku.PurchaseSkuPrice) ?? 0) * (schemeProductSku.PurchaseRatio ?? 1); - //} } if (pssId == null) throw new BusinessException("未找到需要更新的采购配件"); @@ -1214,5 +1203,82 @@ namespace BBWYB.Server.Business fsql.Update(schemeId).Set(s => s.IsFirst, 1).ExecuteAffrows(); }); } + + /// + /// 查询同spu同采购商的其他配件接口,排除失效配件 + /// + /// + /// + public IList QuerySameSpuAndSamePurchaserOtherPurchaseSkuList(QuerySameSpuAndSamePurchaserOtherPurchaseSkuRequest request) + { + var purchaseSchemeProductSkuList = new List(); + + var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest() + { + IncludePurchaseSkuBasicInfo = 0, + PurchasePlatform = Enums.Platform.阿里巴巴, + ProductIdList = new List() { request.ProductId }, + PurchaserId = request.PurchaserId, + ShopId = request.ShopId + }); + if (purchaseSchemeList != null && purchaseSchemeList.Count() > 0) + { + var purchaseProductIdList = new List(); + + foreach (var scheme in purchaseSchemeList) + { + var samePspList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == request.PurchaserId); + if (samePspList.Any()) + { + purchaseProductIdList.AddRange(samePspList.Select(psp => psp.PurchaseProductId)); + purchaseSchemeProductSkuList.AddRange(samePspList.SelectMany(psp => psp.PurchaseSchemeProductSkuList)); + } + } + purchaseProductIdList = purchaseProductIdList.Distinct().ToList(); + var purchaseProductSkuIdList = purchaseSchemeProductSkuList.Select(pss => pss.PurchaseSkuId).Distinct().ToList(); + + var skuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest() + { + FirstApiMode = Enums.PurchaseProductAPIMode.Spider, + PriceMode = Enums.PurchaseOrderMode.批发, + Params = new List() + { + new BatchPurchaseSkuBasicInfoParamRequest() + { + Platform = Enums.Platform.阿里巴巴, + PurchaseProductIds = purchaseProductIdList, + PurchaseSkuIds = purchaseProductSkuIdList + } + } + }); + + for (var i = 0; i < purchaseSchemeProductSkuList.Count(); i++) + { + var pss = purchaseSchemeProductSkuList[i]; + pss.IsInvalid = 0; + var basicInfo = skuBasicInfoList.FirstOrDefault(x => x.PurchaseProductId == pss.PurchaseProductId); + if (basicInfo == null || basicInfo.IsInvalid) + { + //排除失效配件 + purchaseSchemeProductSkuList.RemoveAt(i); + i--; + } + + var skuBasicInfo = basicInfo.ItemList?.FirstOrDefault(x => x.PurchaseSkuId == pss.PurchaseSkuId); + if (skuBasicInfo == null) + { + //排除失效配件 + purchaseSchemeProductSkuList.RemoveAt(i); + i--; + } + + pss.PurchaseSkuLogo = skuBasicInfo.Logo; + pss.PurchaseSkuPrice = skuBasicInfo.Price; + pss.PurchaseSkuTitle = skuBasicInfo.Title; + } + } + + return purchaseSchemeProductSkuList; + } } } diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySameSpuAndSamePurchaserOtherPurchaseSkuRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySameSpuAndSamePurchaserOtherPurchaseSkuRequest.cs new file mode 100644 index 0000000..ef84303 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySameSpuAndSamePurchaserOtherPurchaseSkuRequest.cs @@ -0,0 +1,11 @@ +namespace BBWYB.Server.Model.Dto +{ + public class QuerySameSpuAndSamePurchaserOtherPurchaseSkuRequest + { + public long ShopId { get; set; } + + public string ProductId { get; set; } + + public string PurchaserId { get; set; } + } +} diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs index 04d8b45..419c3cb 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs @@ -25,7 +25,7 @@ namespace BBWYB.Server.Model.Dto public List SkuIdList { get; set; } /// - /// spuId集合,有值则忽略 + /// spuId集合 /// public List ProductIdList { get; set; } @@ -46,5 +46,6 @@ namespace BBWYB.Server.Model.Dto /// 是否包含采购配件的基本信息(单价,Logo,标题等) 是=1 否=0或null /// public int? IncludePurchaseSkuBasicInfo { get; set; } + } }