using BBWY.Client.Models; using BBWY.Common.Http; using BBWY.Common.Models; using System; using System.Collections.Generic; using System.Net.Http; namespace BBWY.Client.APIServices { public class BatchPurchaseService : BaseApiService, IDenpendency { public BatchPurchaseService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) { } /// /// 获取包含对应平台采购方案的sku列表 /// /// /// /// public ApiResponse> GetProductSkuAndSchemeList(string sku, string spu) { return SendRequest>(globalContext.BBYWApiHost, "api/BatchPurchase/GetProductSkuAndSchemeList", new { globalContext.User.Shop.Platform, globalContext.User.Shop.AppKey, globalContext.User.Shop.AppSecret, globalContext.User.Shop.AppToken, globalContext.User.Shop.ShopId, sku, spu }, null, HttpMethod.Post); } public ApiResponse PreviewOrder(IList productSkuWithSchemeList, Consignee consignee, PurchaseOrderMode purchaseOrderMode, IList purchaseAccountList) { var productParamList = new List(); foreach (var productSkuWithScheme in productSkuWithSchemeList) { foreach (var purchaseSchemeProductSku in productSkuWithScheme.PurchaseSchemeProductSkuList) { productParamList.Add(new { purchaseSchemeProductSku.PurchaseProductId, purchaseSchemeProductSku.PurchaseSkuId, PurchaseSpecId = purchaseSchemeProductSku.PurchaseSkuSpecId, Quantity = purchaseSchemeProductSku.ItemTotal, productSkuWithScheme.PurchaserId, productSkuWithScheme.PurchaserName, productSkuWithScheme.PurchasePlatform, BelongSkuId = productSkuWithScheme.SkuId }); } } return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/PreviewOrder", new { consignee, purchaseOrderMode, purchaseAccountList, productParamList }, null, HttpMethod.Post); } public ApiResponse CreateOrder(IList productSkuWithSchemeList, Consignee consignee, PurchaseOrderMode purchaseOrderMode, IList purchaseAccountList, string extensions, string remark) { var productParamList = new List(); foreach (var productSkuWithScheme in productSkuWithSchemeList) { foreach (var purchaseSchemeProductSku in productSkuWithScheme.PurchaseSchemeProductSkuList) { productParamList.Add(new { purchaseSchemeProductSku.PurchaseProductId, purchaseSchemeProductSku.PurchaseSkuId, PurchaseSpecId = purchaseSchemeProductSku.PurchaseSkuSpecId, Quantity = purchaseSchemeProductSku.ItemTotal, productSkuWithScheme.PurchaserId, productSkuWithScheme.PurchaserName, productSkuWithScheme.PurchasePlatform, BelongSkuId = productSkuWithScheme.SkuId, BelongProductId = productSkuWithScheme.ProductId, BelongPrice = productSkuWithScheme.Price, BelongSkuTitle = productSkuWithScheme.Title, BelongLogo = productSkuWithScheme.Logo, BelongQuantity = productSkuWithScheme.Quantity, BelongPurchaseSchemeId = productSkuWithScheme.PurchaseSchemeId, }); } } string autoPay = "fail"; return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/BatchCreateOrder", new { consignee, purchaseOrderMode, purchaseAccountList, productParamList, extensions, remark, autoPay, globalContext.User.Shop.ShopId, globalContext.User.Shop.ShopName }, null, HttpMethod.Post); } public ApiResponse GetPurchaseOrderList(string spu, string sku, string purchaserName, string purchaseOrderId, int pageIndex, int pageSize, DateTime startDate, DateTime endDate, PurchaseOrderState? purchaseOrderState) { return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/GetPurchaseOrderList", new { sku, spu, purchaseOrderId, globalContext.User.Shop.ShopId, purchaserName, purchaseOrderState, pageIndex, pageSize, startDate, endDate }, null, HttpMethod.Post); } public ApiResponse PayOrder(string orderId, Platform PurchasePlatform, PurchaseAccount purchaseAccount) { return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/PayPurchaseOrder", new { orderId, PurchasePlatform, purchaseAccount, globalContext.User.Shop.ShopId, globalContext.User.Shop.ShopName, globalContext.User.Shop.AppKey, globalContext.User.Shop.AppSecret, globalContext.User.Shop.AppToken }, null, HttpMethod.Post); } public ApiResponse CancelOrder(string orderId, PurchaseAccount purchaseAccount, string remark="") { return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/CancelPurchaseOrder", new { orderId, Platform = purchaseAccount.PurchasePlatformId, purchaseAccount.AppKey, purchaseAccount.AppSecret, purchaseAccount.AppToken, remark, }, null, HttpMethod.Post); } } }