步步为盈
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

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