From 8dd22f9ddfd9cecb0ea01f22ab170b8dff6ebedc Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 21 Jun 2023 18:37:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E9=87=87=E8=B4=AD=E5=8D=95=E7=9A=84=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E5=92=8C=E4=BB=93=E5=BA=93=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.API/Controllers/QiKuController.cs | 28 +++++++++ BBWY.Server.Business/QiKu/QiKuBusiness.cs | 61 ++++++++++++++++++- .../GetJDSupplierNameAndStoreNameRequest.cs | 7 +++ .../GetJDSupplierNameAndStoreNameResponse.cs | 11 ++++ 4 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 BBWY.Server.API/Controllers/QiKuController.cs create mode 100644 BBWY.Server.Model/Dto/Request/QiKu/GetJDSupplierNameAndStoreNameRequest.cs create mode 100644 BBWY.Server.Model/Dto/Response/QK/GetJDSupplierNameAndStoreNameResponse.cs diff --git a/BBWY.Server.API/Controllers/QiKuController.cs b/BBWY.Server.API/Controllers/QiKuController.cs new file mode 100644 index 00000000..8851752b --- /dev/null +++ b/BBWY.Server.API/Controllers/QiKuController.cs @@ -0,0 +1,28 @@ +using BBWY.Server.Business.QiKu; +using BBWY.Server.Model.Dto; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace BBWY.Server.API.Controllers +{ + + public class QiKuController : BaseApiController + { + private QiKuBusiness qikuBusiness; + public QiKuController(IHttpContextAccessor httpContextAccessor, QiKuBusiness qikuBusiness) : base(httpContextAccessor) + { + this.qikuBusiness = qikuBusiness; + } + + /// + /// 获取供应商和仓库信息 + /// + /// + /// + [HttpPost] + public GetJDSupplierNameAndStoreNameResponse GetJDSupplierNameAndStoreName([FromBody] GetJDSupplierNameAndStoreNameRequest request) + { + return qikuBusiness.GetJDSupplierNameAndStoreName(request); + } + } +} diff --git a/BBWY.Server.Business/QiKu/QiKuBusiness.cs b/BBWY.Server.Business/QiKu/QiKuBusiness.cs index ed6c09a5..ec192965 100644 --- a/BBWY.Server.Business/QiKu/QiKuBusiness.cs +++ b/BBWY.Server.Business/QiKu/QiKuBusiness.cs @@ -1,12 +1,67 @@ -using BBWY.Common.Models; +using BBWY.Common.Http; +using BBWY.Common.Models; +using BBWY.Server.Model; +using BBWY.Server.Model.Dto; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using Org.BouncyCastle.Ocsp; +using System.Linq; using Yitter.IdGenerator; namespace BBWY.Server.Business.QiKu { - public class QiKuBusiness : BaseBusiness, IDenpendency + public class QiKuBusiness : BasePlatformRelayBusiness, IDenpendency { - public QiKuBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) + private VenderBusiness venderBusiness; + public QiKuBusiness(RestApiService restApiService, IOptions options, YunDingBusiness yunDingBusiness, VenderBusiness venderBusiness) : base(restApiService, options, yunDingBusiness) { + this.venderBusiness = venderBusiness; + } + + public GetJDSupplierNameAndStoreNameResponse GetJDSupplierNameAndStoreName(GetJDSupplierNameAndStoreNameRequest request) + { + #region 查询入库采购单 + var inStorePoHttpResult = restApiService.SendRequest(GetPlatformRelayAPIHost(request.Platform), "api/PlatformSDK/GetJDInStorePurchaseOrderDetail", request, GetYunDingRequestHeader(), System.Net.Http.HttpMethod.Post); + if (inStorePoHttpResult.StatusCode != System.Net.HttpStatusCode.OK) + throw new BusinessException(inStorePoHttpResult.Content); + var inStorePoResponse = JsonConvert.DeserializeObject>(inStorePoHttpResult.Content); + if (!inStorePoResponse.Success) + throw new BusinessException(inStorePoResponse.Msg); + var inStorePoJToken = inStorePoResponse.Data; + var deptNo = inStorePoJToken["jingdong_eclp_po_queryPoOrder_responce"]["queryPoModelList"].Children().FirstOrDefault().Value("deptNo"); + var whNo = inStorePoJToken["jingdong_eclp_po_queryPoOrder_responce"]["queryPoModelList"].Children().FirstOrDefault().Value("whNo"); + #endregion + + #region 查询供应商 + var supplierHttpResult = restApiService.SendRequest(GetPlatformRelayAPIHost(request.Platform), "api/PlatformSDK/GetJDSupplierDetail", new + { + DeptNo = deptNo, + request.AppKey, + request.AppSecret, + request.AppToken, + request.Platform + }, GetYunDingRequestHeader(), System.Net.Http.HttpMethod.Post); + if (supplierHttpResult.StatusCode != System.Net.HttpStatusCode.OK) + throw new BusinessException(supplierHttpResult.Content); + var supplierResponse = JsonConvert.DeserializeObject>(supplierHttpResult.Content); + if (!supplierResponse.Success) + throw new BusinessException(supplierResponse.Msg); + var supplierJToken = supplierResponse.Data; + var supplierName = supplierJToken["jingdong_eclp_master_querySupplier_responce"]["querysupplier_result"].Children().FirstOrDefault().Value("supplierName"); + #endregion + + #region 查询仓库信息 + var storeList = venderBusiness.GetStoreHouseList(request); + var store = storeList.FirstOrDefault(s => s.Id == whNo); + #endregion + + return new GetJDSupplierNameAndStoreNameResponse() + { + StoreId = store?.Id, + StoreName = store?.Name, + SupplierName = supplierName + }; } } } diff --git a/BBWY.Server.Model/Dto/Request/QiKu/GetJDSupplierNameAndStoreNameRequest.cs b/BBWY.Server.Model/Dto/Request/QiKu/GetJDSupplierNameAndStoreNameRequest.cs new file mode 100644 index 00000000..3fea2b22 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/QiKu/GetJDSupplierNameAndStoreNameRequest.cs @@ -0,0 +1,7 @@ +namespace BBWY.Server.Model.Dto +{ + public class GetJDSupplierNameAndStoreNameRequest:PlatformRequest + { + public string PoOrderNo { get; set; } + } +} diff --git a/BBWY.Server.Model/Dto/Response/QK/GetJDSupplierNameAndStoreNameResponse.cs b/BBWY.Server.Model/Dto/Response/QK/GetJDSupplierNameAndStoreNameResponse.cs new file mode 100644 index 00000000..afc3d5bd --- /dev/null +++ b/BBWY.Server.Model/Dto/Response/QK/GetJDSupplierNameAndStoreNameResponse.cs @@ -0,0 +1,11 @@ +namespace BBWY.Server.Model.Dto +{ + public class GetJDSupplierNameAndStoreNameResponse + { + public string SupplierName { get; set; } + + public string StoreId { get; set; } + + public string StoreName { get; set; } + } +}