From 7d04fba6f352acd51bcae49997ccb158b6901954 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Tue, 22 Aug 2023 12:39:49 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20spu=E6=9F=A5=E8=AF=A2(?=
=?UTF-8?q?=E5=8C=85=E5=90=ABsku)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/ProductController.cs | 11 +++
.../Product/ProductBusiness.cs | 74 +++++++++++++++++++
BBWYB.Server.Model/BBWYB.Server.Model.csproj | 4 +
.../Request/Product/QueryBProductRequest.cs | 8 ++
.../Dto/Response/Product/BProductResponse.cs | 16 ++++
5 files changed, 113 insertions(+)
create mode 100644 BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs
create mode 100644 BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
diff --git a/BBWYB.Server.API/Controllers/ProductController.cs b/BBWYB.Server.API/Controllers/ProductController.cs
index 9aeec32..8435f26 100644
--- a/BBWYB.Server.API/Controllers/ProductController.cs
+++ b/BBWYB.Server.API/Controllers/ProductController.cs
@@ -35,6 +35,17 @@ namespace BBWYB.Server.API.Controllers
return productBusiness.GetProductSkuList(request);
}
+ ///
+ /// spu列表查询(包含sku)
+ ///
+ ///
+ ///
+ [HttpPost]
+ public BProductListResponse GetProductAndSkuList([FromBody]QueryBProductRequest request)
+ {
+ return productBusiness.GetProductAndSkuList(request);
+ }
+
///
/// 查询sku现有售价
///
diff --git a/BBWYB.Server.Business/Product/ProductBusiness.cs b/BBWYB.Server.Business/Product/ProductBusiness.cs
index d8b6326..f925b39 100644
--- a/BBWYB.Server.Business/Product/ProductBusiness.cs
+++ b/BBWYB.Server.Business/Product/ProductBusiness.cs
@@ -27,6 +27,80 @@ namespace BBWYB.Server.Business
return opPlatformClientFactory.GetClient(request.Platform).GetProductSkuList(request);
}
+ public BProductListResponse GetProductAndSkuList(QueryBProductRequest request)
+ {
+ if (string.IsNullOrEmpty(request.Spu) && !string.IsNullOrEmpty(request.Sku))
+ {
+ var skuResponse = GetProductSkuList(new OP_QueryProductSkuRequest()
+ {
+ AppSecret = request.AppSecret,
+ AppKey = request.AppKey,
+ AppToken = request.AppToken,
+ PageIndex = 1,
+ PageSize = 50,
+ Platform = request.Platform,
+ Sku = request.Sku,
+ Spu = request.Spu
+ });
+ if (skuResponse.Count > 0)
+ {
+ request.Spu = skuResponse.Items.FirstOrDefault().ProductId;
+ request.PageIndex = 1;
+ request.PageSize = 50;
+ }
+ }
+
+ var list = new List();
+ var spuResponse = GetProductList(new OP_QueryProductRequest()
+ {
+ AppSecret = request.AppSecret,
+ AppKey = request.AppKey,
+ AppToken = request.AppToken,
+ PageIndex = request.PageIndex,
+ PageSize = request.PageSize,
+ Platform = request.Platform,
+ Spu = request.Spu
+ });
+
+ if (spuResponse.Items.Count() > 0)
+ {
+ foreach (var op_product in spuResponse.Items)
+ {
+ var bproduct = new BProductResponse()
+ {
+ Id = op_product.Id,
+ BrandName = op_product.BrandName,
+ CreateTime = op_product.CreateTime,
+ Logo = op_product.Logo,
+ ProductItemNum = op_product.ProductItemNum,
+ State = op_product.State,
+ Title = op_product.Title
+ };
+ list.Add(bproduct);
+ var skuResponse = GetProductSkuList(new OP_QueryProductSkuRequest
+ {
+ AppSecret = request.AppSecret,
+ AppKey = request.AppKey,
+ AppToken = request.AppToken,
+ PageIndex = 1,
+ PageSize = 50,
+ Platform = request.Platform,
+ Spu = op_product.Id
+ });
+ if (skuResponse.Count > 0)
+ {
+ bproduct.SkuList = skuResponse.Items;
+ }
+ }
+ }
+
+ return new BProductListResponse()
+ {
+ Count = spuResponse.Count,
+ Items = list
+ };
+ }
+
public decimal? GetProductSkuPrice(QueryProductSkuPriceRequest request)
{
var response = GetProductSkuList(new OP_QueryProductSkuRequest()
diff --git a/BBWYB.Server.Model/BBWYB.Server.Model.csproj b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
index 54ecedd..bcfb11f 100644
--- a/BBWYB.Server.Model/BBWYB.Server.Model.csproj
+++ b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
@@ -16,4 +16,8 @@
+
+
+
+
diff --git a/BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs b/BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs
new file mode 100644
index 0000000..a05a8ee
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs
@@ -0,0 +1,8 @@
+using SDKAdapter.OperationPlatform.Models;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class QueryBProductRequest: OP_QueryProductSkuRequest
+ {
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs b/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
new file mode 100644
index 0000000..08342b4
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
@@ -0,0 +1,16 @@
+using SDKAdapter.OperationPlatform.Models;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class BProductResponse : OP_ProductResponse
+ {
+ public IList SkuList { get; set; }
+ }
+
+ public class BProductListResponse
+ {
+ public int Count { get; set; }
+
+ public IList Items { get; set; }
+ }
+}