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