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