步步为盈
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.

174 lines
7.8 KiB

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)
{
}
/// <summary>
/// 获取包含对应平台采购方案的sku列表
/// </summary>
/// <param name="sku"></param>
/// <param name="spu"></param>
/// <returns></returns>
public ApiResponse<IList<ProductSkuWithSchemeResponse>> GetProductSkuAndSchemeList(string sku, string spu)
{
return SendRequest<IList<ProductSkuWithSchemeResponse>>(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<PreviewOrderResponse> PreviewOrder(IList<ProductSkuWithScheme> productSkuWithSchemeList,
Consignee consignee,
PurchaseOrderMode purchaseOrderMode,
IList<PurchaseAccount> purchaseAccountList)
{
var productParamList = new List<object>();
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<PreviewOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/PreviewOrder", new
{
consignee,
purchaseOrderMode,
purchaseAccountList,
productParamList
}, null, HttpMethod.Post);
}
public ApiResponse<BatchCreareOrderResponse> CreateOrder(IList<ProductSkuWithScheme> productSkuWithSchemeList,
Consignee consignee,
PurchaseOrderMode purchaseOrderMode,
IList<PurchaseAccount> purchaseAccountList,
string extensions,
string remark)
{
var productParamList = new List<object>();
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<BatchCreareOrderResponse>(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<PurchaseOrderV2ListResponse> GetPurchaseOrderList(string spu,
string sku,
string purchaserName,
string purchaseOrderId,
int pageIndex,
int pageSize,
DateTime startDate,
DateTime endDate,
PurchaseOrderState? purchaseOrderState)
{
return SendRequest<PurchaseOrderV2ListResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/GetPurchaseOrderList", new
{
sku,
spu,
purchaseOrderId,
globalContext.User.Shop.ShopId,
purchaserName,
purchaseOrderState,
pageIndex,
pageSize,
startDate,
endDate
}, null, HttpMethod.Post);
}
public ApiResponse<PayPurchaseOrderResponse> PayOrder(string orderId, Platform PurchasePlatform, PurchaseAccount purchaseAccount)
{
return SendRequest<PayPurchaseOrderResponse>(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<PayPurchaseOrderResponse> CancelOrder(string orderId, PurchaseAccount purchaseAccount, string remark="")
{
return SendRequest<PayPurchaseOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/CancelPurchaseOrder", new
{
orderId,
Platform = purchaseAccount.PurchasePlatformId,
purchaseAccount.AppKey,
purchaseAccount.AppSecret,
purchaseAccount.AppToken,
remark,
}, null, HttpMethod.Post);
}
}
}