using BBWY.Client.Models; using BBWY.Common.Http; using BBWY.Common.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; namespace BBWY.Client.APIServices { public class PurchaseOrderService : BaseApiService, IDenpendency { public PurchaseOrderService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) { } public ApiResponse<object> AddPurchaseOrder(PurchaseOrder purchaseOrder) { return SendRequest<object>(globalContext.BBYWApiHost, "api/PurchaseOrder/AddPurchaseOrder", purchaseOrder, null, HttpMethod.Post); } public ApiResponse<object> EditPurchaseOrder(PurchaseOrder purchaseOrder) { return SendRequest<object>(globalContext.BBYWApiHost, "api/PurchaseOrder/EditPurchaseOrder", purchaseOrder, null, HttpMethod.Put); } public ApiResponse<IList<PurchaseOrderResponse>> GetList(IList<string> skuIdList, StorageType storageType, long shopId) { return SendRequest<IList<PurchaseOrderResponse>>(globalContext.BBYWApiHost, "api/PurchaseOrder/GetList", new { SkuIdList = skuIdList, StorageType = storageType, ShopId = shopId }, null, HttpMethod.Post); } public ApiResponse<object> DeletePurchaseOrder(long id) { return SendRequest<object>(globalContext.BBYWApiHost, $"api/purchaseOrder/deletePurchaseOrder/{id}", null, null, HttpMethod.Delete); } /// <summary> /// 预览订单 /// </summary> /// <param name="consignee"></param> /// <param name="purchaseSchemeProductSkuList"></param> /// <returns></returns> public ApiResponse<PreviewOrderResponse> PreviewPurchaseOrder(Consignee consignee, List<CargoParam> cargoParamList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode) { return SendRequest<PreviewOrderResponse>(globalContext.BBYWApiHost, "api/purchaseOrder/PreviewPurchaseOrder", new { purchaseOrderMode, consignee, CargoParamList = cargoParamList, Platform = purchasePlatform, AppKey = purchaseAccount.AppKey, AppSecret = purchaseAccount.AppSecret, AppToken = purchaseAccount.AppToken, SaveResponseLog = true }, null, HttpMethod.Post); } /// <summary> /// 创建采购单 /// </summary> /// <param name="consignee"></param> /// <param name="purchaseSchemeProductSkuList"></param> /// <param name="purchasePlatform"></param> /// <param name="purchaseAccount"></param> /// <param name="purchaseOrderMode"></param> /// <param name="tradeMode"></param> /// <param name="remark"></param> /// <param name="orderId"></param> /// <param name="shopId"></param> /// <param name="purchaseAccountId"></param> /// <param name="buyerAccount"></param> /// <param name="sellerAccount"></param> /// <param name="purchaserId"></param> /// <param name="platformCommissionRatio"></param> /// <param name="extensions"></param> /// <returns></returns> public ApiResponse<object> FastCreateOrder(Consignee consignee, List<CargoParam> cargoParamList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode, string tradeMode, string remark, string orderId, long shopId, long purchaseAccountId, string buyerAccount, string sellerAccount, string purchaserId, decimal platformCommissionRatio, string extensions) { return SendRequest<object>(globalContext.BBYWApiHost, "api/purchaseOrder/NewFastCreateOrder", new { purchaseOrderMode, consignee, CargoParamList = cargoParamList, Platform = purchasePlatform, purchaseAccount.AppKey, purchaseAccount.AppSecret, purchaseAccount.AppToken, SaveResponseLog = true, tradeMode, remark, orderId, shopId, purchaseAccountId, buyerAccount, sellerAccount, purchaserId, platformCommissionRatio, extensions }, null, HttpMethod.Post); } /// <summary> /// 查询审核采购单 /// </summary> /// <param name="shopIdList"></param> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> public ApiResponse<IList<AuditPurchaseOrderResponse>> GetAuditPurchaseOrderList(IList<long> shopIdList, DateTime startDate, DateTime endDate) { return SendRequest<IList<AuditPurchaseOrderResponse>>(globalContext.BBYWApiHost, "Api/PurchaseOrder/GetAuditPurchaseOrderList", new { startDate, endDate, shopIdList }, null, HttpMethod.Post); } } }