You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
4.3 KiB
89 lines
4.3 KiB
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 : BasePlatformRelayBusiness, IDenpendency
|
|
{
|
|
private VenderBusiness venderBusiness;
|
|
public QiKuBusiness(RestApiService restApiService, IOptions<GlobalConfig> 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<ApiResponse<JToken>>(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<string>("deptNo");
|
|
var whNo = inStorePoJToken["jingdong_eclp_po_queryPoOrder_responce"]["queryPoModelList"].Children().FirstOrDefault().Value<string>("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<ApiResponse<JToken>>(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<string>("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<ApiResponse<JToken>>(jdqueryResult.Content);
|
|
if (!jdqueryResponse.Success)
|
|
throw new BusinessException(jdqueryResponse.Msg);
|
|
|
|
var city = jdqueryResponse.Data.FirstOrDefault()?.Value<string>("city");
|
|
#endregion
|
|
|
|
return new GetJDSupplierNameAndStoreNameResponse()
|
|
{
|
|
StoreId = store?.Id,
|
|
StoreName = store?.Name,
|
|
SupplierName = supplierName,
|
|
City = city
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|