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 System.Linq; namespace BBWY.Server.Business.QiKu { public class QiKuBusiness : BasePlatformRelayBusiness, IDenpendency { 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 #region 查询仓库城市 var jdqueryResult = restApiService.SendRequest(GetPlatformRelayAPIHost(request.Platform), "api/PlatformSDK/JDQueryWareHouse", new { deptNo, wareHouseNos = whNo, request.AppKey, request.AppSecret, request.AppToken, request.Platform }, GetYunDingRequestHeader(), System.Net.Http.HttpMethod.Post); if (jdqueryResult.StatusCode != System.Net.HttpStatusCode.OK) throw new BusinessException(jdqueryResult.Content); var jdqueryResponse = JsonConvert.DeserializeObject>(jdqueryResult.Content); if (!jdqueryResponse.Success) throw new BusinessException(jdqueryResponse.Msg); var city = jdqueryResponse.Data.FirstOrDefault()?.Value("city"); #endregion return new GetJDSupplierNameAndStoreNameResponse() { StoreId = store?.Id, StoreName = store?.Name, SupplierName = supplierName, City = city }; } } }