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.
198 lines
8.5 KiB
198 lines
8.5 KiB
using BBWYB.Common.Http;
|
|
using QuanTan.SDK.Client.Supplier;
|
|
using QuanTan.SDK.Models.Supplier;
|
|
using SDKAdapter.OperationPlatform.Models;
|
|
|
|
namespace SDKAdapter.OperationPlatform.Client
|
|
{
|
|
public class OP_QuanTanClient : OP_PlatformClient
|
|
{
|
|
private QuanTan_Supplier_ProductClient supplier_ProductClient;
|
|
private QuanTan_Supplier_OrderClient supplier_OrderClient;
|
|
private QuanTan_Supplier_ExpressClient supplier_ExpressClient;
|
|
|
|
public OP_QuanTanClient(RestApiService restApiService) : base(restApiService)
|
|
{
|
|
this.supplier_ProductClient = new QuanTan_Supplier_ProductClient(restApiService);
|
|
this.supplier_OrderClient = new QuanTan_Supplier_OrderClient(restApiService);
|
|
this.supplier_ExpressClient = new QuanTan_Supplier_ExpressClient(restApiService);
|
|
}
|
|
|
|
public override AdapterEnums.PlatformType Platform => AdapterEnums.PlatformType.拳探;
|
|
|
|
public override OP_ProductListResponse GetProductList(OP_QueryProductRequest request)
|
|
{
|
|
var qtResponse = supplier_ProductClient.GetProductList(new QuanTan_Supplier_SearchSpuRequest()
|
|
{
|
|
page = request.PageIndex,
|
|
pageSize = request.PageSize,
|
|
productId = request.Spu,
|
|
storeId = request.AppToken
|
|
}, request.AppKey, request.AppSecret);
|
|
|
|
if (qtResponse.Status != 200)
|
|
throw new Exception(qtResponse.Message);
|
|
|
|
return new OP_ProductListResponse()
|
|
{
|
|
Count = qtResponse.Data.Count,
|
|
Items = qtResponse.Data.List.Select(qtp => new OP_ProductResponse()
|
|
{
|
|
Id = qtp.ProductId,
|
|
BrandName = string.Empty,
|
|
CreateTime = null,
|
|
Logo = qtp.Image,
|
|
ProductItemNum = string.Empty,
|
|
State = 0,
|
|
Title = qtp.ProductName
|
|
}).ToList()
|
|
};
|
|
}
|
|
|
|
public override OP_ProductSkuListResponse GetProductSkuList(OP_QueryProductSkuRequest request)
|
|
{
|
|
var qtResponse = supplier_ProductClient.GetProductSkuList(new QuanTan_Supplier_SearchSkuRequest()
|
|
{
|
|
page = request.PageIndex,
|
|
pageSize = request.PageSize,
|
|
storeId = request.AppToken,
|
|
productId = request.Spu,
|
|
productSku = request.Sku
|
|
}, request.AppKey, request.AppSecret);
|
|
|
|
if (qtResponse.Status != 200)
|
|
throw new Exception(qtResponse.Message);
|
|
|
|
return new OP_ProductSkuListResponse()
|
|
{
|
|
Count = qtResponse.Data.Count,
|
|
Items = qtResponse.Data.List.Select(qtps => new OP_ProductSkuResponse()
|
|
{
|
|
CreateTime = null,
|
|
Id = qtps.ProductSku,
|
|
Logo = qtps.SkuImage,
|
|
Price = qtps.SkuPrice,
|
|
ProductId = qtps.ProductId,
|
|
State = 0,
|
|
Title = qtps.SkuName
|
|
}).ToList()
|
|
};
|
|
}
|
|
|
|
public override OP_OrderListResponse GetOrderList(OP_QueryOrderRequest request)
|
|
{
|
|
request.OrderId = request.OrderId ?? string.Empty;
|
|
var qtRequest = new QuanTan_Supplier_QueryOrderReuqest()
|
|
{
|
|
storeId = request.AppToken,
|
|
orderId = request.OrderId,
|
|
order = request.SortTimeField == AdapterEnums.SortTimeField.Modify ? "update_time" : "create_time",
|
|
orderBy = request.SortType == AdapterEnums.SortType.Asc ? "asc" : "desc",
|
|
page = request.PageIndex,
|
|
pageSize = request.PageSize
|
|
};
|
|
if (request.SortTimeField == AdapterEnums.SortTimeField.Modify)
|
|
{
|
|
if (request.StartDate != null)
|
|
qtRequest.updateStart = request.StartDate;
|
|
if (request.EndDate != null)
|
|
qtRequest.updateEnd = request.EndDate;
|
|
}
|
|
else if (request.SortTimeField == AdapterEnums.SortTimeField.Start)
|
|
{
|
|
if (request.StartDate != null)
|
|
qtRequest.createStart = request.StartDate;
|
|
if (request.EndDate != null)
|
|
qtRequest.createEnd = request.EndDate;
|
|
}
|
|
|
|
var qtResponse = supplier_OrderClient.GetOrderList(qtRequest, request.AppKey, request.AppSecret);
|
|
if (qtResponse.Status != 200)
|
|
throw new Exception(qtResponse.Message);
|
|
|
|
return new OP_OrderListResponse()
|
|
{
|
|
Count = qtResponse.Data.Count,
|
|
Items = qtResponse.Data.List.Select(qto => new OP_OrderResponse()
|
|
{
|
|
OrderPlatform = AdapterEnums.PlatformType.拳探,
|
|
OrderId = qto.OrderId,
|
|
ClientOrderId = qto.ClientOrderId,
|
|
UserAccount = qto.UserAccount,
|
|
Extended = qto.Extended,
|
|
BuyerRemark = qto.BuyRemark,
|
|
VenderRemark = qto.MerRemark,
|
|
Consignee = new OP_OrderConsigneeResponse()
|
|
{
|
|
Address = qto.Receipt.Address,
|
|
City = qto.Receipt.City,
|
|
ContactName = qto.Receipt.RealName,
|
|
County = qto.Receipt.Area,
|
|
Mobile = qto.Receipt.Phone,
|
|
Province = qto.Receipt.Province,
|
|
Town = qto.Receipt.Town
|
|
},
|
|
StartTime = qto.CreateTime,
|
|
ModifyTime = qto.UpdateTime,
|
|
FreightAmount = qto.TotalPostage,
|
|
OrderState = qto.Status.ToString(),
|
|
EndTime = qto.Status == 3 ? qto.UpdateTime : null,
|
|
OrderPayment = qto.TotalPrice,
|
|
OrderProductAmount = qto.ProductPrice,
|
|
OrderSource = qto.Source,
|
|
OrderTotalAmount = qto.TotalPrice,
|
|
PaidInAmount = qto.TotalPrice,
|
|
PayType = 0,
|
|
IsPay = qto.Paid == 1,
|
|
PreferentialAmount = 0,
|
|
SellerPreferentialAmount = 0,
|
|
OrderSkuList = qto.OrderProduct.Select(qtosku => new OP_OrderProductSkuResponse()
|
|
{
|
|
Id = qtosku.OrderProductId,
|
|
ProductId = qtosku.ProductId,
|
|
ProductTitle = qtosku.Title,
|
|
SkuId = qtosku.ProductSku,
|
|
Quantity = qtosku.Quantity,
|
|
SkuLogo = qtosku.SkuInfo.Image,
|
|
SkuPrice = qtosku.SkuInfo.Price,
|
|
SkuTitle = qtosku.SkuInfo.Title
|
|
}).ToList(),
|
|
DeliveryResponse = new OP_OrderDeliveryResponse()
|
|
{
|
|
ExpressId = qto.Delivery?.ExpressId ?? string.Empty,
|
|
ExpressName = qto.Delivery?.ExpressName ?? string.Empty,
|
|
WayBillNo = qto.Delivery?.ExpressSn ?? string.Empty
|
|
}
|
|
}).ToList()
|
|
};
|
|
}
|
|
|
|
public override void OutStock(OP_OutStockRequest request)
|
|
{
|
|
var qtResponse = supplier_OrderClient.OutStock(new QuanTan_Supplier_OutStockRequest()
|
|
{
|
|
expressId = request.ExpressId,
|
|
orderId = request.OrderId,
|
|
waybillNo = request.WayBillNo
|
|
}, request.AppKey, request.AppSecret);
|
|
if (qtResponse.Status != 200)
|
|
throw new Exception(qtResponse.Message);
|
|
}
|
|
|
|
public override IList<OP_QueryExpressCompanyResponse> GetExpressCompanyList(OP_QueryExpressCompanyRequest request)
|
|
{
|
|
return supplier_ExpressClient.GetExpressCompanyList().Select(p => new OP_QueryExpressCompanyResponse()
|
|
{
|
|
ExpressId = p.ExpressId,
|
|
ExpressName = p.ExpressName,
|
|
}).ToList();
|
|
}
|
|
|
|
public override void CancelOrder(OP_CancelOrderRequest request)
|
|
{
|
|
var qtResponse = supplier_OrderClient.CancelOrder(new QuanTan_Supplier_CancelOrderRequest(), request.AppKey, request.AppSecret);
|
|
if (qtResponse.Status != 200)
|
|
throw new Exception(qtResponse.Message);
|
|
}
|
|
}
|
|
}
|
|
|