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