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

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