using BBWY.Client.Models;
using BBWY.Client.Models.QiKu;
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,
IList packSkuConfigList)
{
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,
packSkuConfigList
}, 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,
Platform = purchaseAccount.PurchasePlatformId,
purchaseAccount.AppKey,
purchaseAccount.AppSecret,
purchaseAccount.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);
}
///
/// 修改打包状态
///
///
///
///
public ApiResponse UpdatePackState(string orderId, PackState packState)
{
return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/UpdatePackState", new
{
orderId,
packState
}, null, HttpMethod.Post);
}
///
/// 修改采购单状态
///
///
///
///
public ApiResponse UpdatePurchaseOrderState(string orderId, PurchaseOrderState PurchaseOrderState)
{
return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/UpdatePurchaseOrderState", new
{
orderId,
PurchaseOrderState
}, null, HttpMethod.Post);
}
}
}