using BBWYB.Common.Http; using BBWYB.Common.Models; using QuanTan.SDK.Client.Supplier; using QuanTan.SDK.Models.Supplier; using SDKAdapter.OperationPlatform.Models; 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 }, 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 }).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 = 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 }).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 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 GetProductCategoryList(OP_QueryProductCategoryRequest request) { var qtResponse = supplier_ProductClient.GetProductCategoryList(new QuanTan_Supplier_SearchProductCategoryRequest() { page = request.PageIndex, pageSize = request.PageSize }, request.AppKey, request.AppSecret); return new OP_ListResponse() { Count = qtResponse.Data.Count, Items = qtResponse.Data.List != null && qtResponse.Data.List.Count() > 0 ? qtResponse.Data.List.Select(x => new OP_ProductCategoryResponse() { CategoryId = x.CategoryId, CategoryName = x.CategoryName, }).ToList() : null }; } } }