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.
283 lines
12 KiB
283 lines
12 KiB
using BBWYB.Common.Http;
|
|
using BBWYB.Common.Models;
|
|
using com.alibaba.openapi.client;
|
|
using QuanTan.SDK.Client.Supplier;
|
|
using QuanTan.SDK.Models.Supplier;
|
|
using SDKAdapter.OperationPlatform.Models;
|
|
using System.Reflection.Emit;
|
|
using static System.Net.WebRequestMethods;
|
|
|
|
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,
|
|
updateStart = request.UpdateStartTime,
|
|
updateEnd = request.UpdateEndTime,
|
|
isShow = request.ProductState == AdapterEnums.ProuctState.下架 ? "0" : "1"
|
|
}, 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 = qtp.UpperTime,
|
|
Logo = qtp.Image,
|
|
ProductItemNum = string.Empty,
|
|
State = qtp.IsShow == 1 && qtp.Status == 1 ? 1 : 0,
|
|
Title = qtp.ProductName,
|
|
CategoryId = qtp.CategoryId,
|
|
CategoryName = qtp.CategoryName,
|
|
UpdateTime = qtp.UpdateTime
|
|
}).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,
|
|
updateStart = request.UpdateStartTime,
|
|
updateEnd = request.UpdateEndTime
|
|
}, 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 = qtps.UpperTime,
|
|
Id = qtps.ProductSku,
|
|
Logo = qtps.SkuImage,
|
|
Price = qtps.SkuPrice,
|
|
ProductId = qtps.ProductId,
|
|
State = qtps.IsShow == 1 && qtps.Status == 1 ? 1 : 0,
|
|
Title = qtps.SkuName,
|
|
CategoryId = qtps.CategoryId,
|
|
CategoryName = qtps.CategoryName,
|
|
UpdateTime = qtps.UpdateTime
|
|
}).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,
|
|
source = 1
|
|
};
|
|
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,
|
|
OrderSn = qto.OrderSn,
|
|
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,
|
|
PackAmount = qto.PackingCharge,
|
|
PayType = 0,
|
|
IsPay = qto.Paid == 1,
|
|
PayTime = qto.Paid == 1 ? qto.PayTime : null,
|
|
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,
|
|
ProductAmount = qtosku.ProductPrice,
|
|
FreightAmount = qtosku.PostagePrice,
|
|
PackAmount = qtosku.PackingCharge
|
|
}).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()
|
|
{
|
|
editAdmin = request.AppToken,
|
|
orderId = request.OrderId,
|
|
remark = request.Remark
|
|
}, request.AppKey, request.AppSecret);
|
|
if (qtResponse.Status != 200)
|
|
throw new BusinessException(qtResponse.Message);
|
|
}
|
|
|
|
public override void EditPrice(OP_EditPriceRequest request)
|
|
{
|
|
var qtResponse = supplier_OrderClient.EditPrice(new QuanTan_Supplier_EditPriceRequest()
|
|
{
|
|
editAdmin = request.AppToken,
|
|
orderId = request.OrderId,
|
|
orderProduct = request.EditItems.Select(item => new QuanTan_Supplier_EditPriceSkuRequest()
|
|
{
|
|
orderProductId = item.OrderSkuId,
|
|
postagePrice = item.Freight,
|
|
price = item.Price,
|
|
packingChargeSingle = item.InPackAmountPrice
|
|
}).ToList()
|
|
}, request.AppKey, request.AppSecret);
|
|
|
|
if (qtResponse.Status != 200)
|
|
throw new BusinessException(qtResponse.Message);
|
|
}
|
|
|
|
public override void EditProductPrice(OP_EditProductPriceRequest request)
|
|
{
|
|
var qtResponse = supplier_ProductClient.EditProductPrice(new QuanTan_Supplier_EditProductPriceRequest()
|
|
{
|
|
productId = request.Spu,
|
|
editAdmin = request.AppToken,
|
|
skuList = request.EditSkuList.Select(x => new QuanTan_Supplier_EditProductSkuPriceRequest()
|
|
{
|
|
price = x.Price,
|
|
skuId = x.Sku
|
|
}).ToList()
|
|
}, request.AppKey, request.AppSecret);
|
|
if (qtResponse.Status != 200)
|
|
throw new BusinessException(qtResponse.Message);
|
|
}
|
|
|
|
public override OP_ListResponse<OP_ProductCategoryResponse> GetProductCategoryList(OP_QueryProductCategoryRequest request)
|
|
{
|
|
var qtResponse = supplier_ProductClient.GetProductCategoryList(new QuanTan_Supplier_SearchProductCategoryRequest()
|
|
{
|
|
page = request.PageIndex,
|
|
pageSize = request.PageSize,
|
|
categoryLevel = request.Level
|
|
}, request.AppKey, request.AppSecret);
|
|
|
|
if (qtResponse.Status != 200)
|
|
throw new BusinessException(qtResponse.Message);
|
|
|
|
return new OP_ListResponse<OP_ProductCategoryResponse>()
|
|
{
|
|
Count = qtResponse.Data?.Count ?? 0,
|
|
Items = qtResponse.Data?.List?.Select(x => new OP_ProductCategoryResponse()
|
|
{
|
|
CategoryId = x.CategoryId,
|
|
CategoryName = x.CategoryName,
|
|
CategoryPath = x.CategoryPath
|
|
}).ToList()
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|