using BBWYB.Client.Models; using BBWYB.Common.Http; using BBWYB.Common.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; namespace BBWYB.Client.APIServices { public class PurchaseOrderService : BaseApiService, IDenpendency { public PurchaseOrderService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) { } /// /// 按采购商分组组装采购产品参数 /// /// /// private IList CombineCargoParamGroup(IList productSkuWithSchemeList) { IList cargoParamGroupList = new List(); var purchaserGroups = productSkuWithSchemeList.GroupBy(s => s.PurchaserId); foreach (var purchaserGroup in purchaserGroups) { var first = purchaserGroup.FirstOrDefault(); var cargoParamList = new List(); foreach (var productSkuWithScheme in purchaserGroup) { foreach (var purchaseSchemeProductSku in productSkuWithScheme.PurchaseSchemeProductSkuList) { cargoParamList.Add(new { ProductId = purchaseSchemeProductSku.PurchaseProductId, SkuId = purchaseSchemeProductSku.PurchaseSkuId, SpecId = purchaseSchemeProductSku.PurchaseSkuSpecId, Quantity = purchaseSchemeProductSku.ItemTotal, BelongSkuId = productSkuWithScheme.SkuId, SchemeId = productSkuWithScheme.PurchaseSchemeId }); } } var cargoParamGroup = new { PurchaserId = purchaserGroup.Key, first.PurchaserName, first.PurchasePlatform, cargoParamList }; cargoParamGroupList.Add(cargoParamGroup); } return cargoParamGroupList; } /// /// 预览订单 /// /// /// /// /// public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList productSkuWithSchemeList, PurchaseOrderMode purchaseOrderMode) { var cargoParamGroupList = CombineCargoParamGroup(productSkuWithSchemeList); return SendRequest(globalContext.BBWYApiHost, "api/PurchaseOrder/PreviewPurchaseOrder", new { purchaseOrderMode, consignee, cargoParamGroupList, globalContext.User.Shop.PurchaseAccountList }, null, HttpMethod.Post); } /// /// 创建采购单 /// /// /// /// /// /// /// /// /// public ApiResponse FastCreateOrder(Consignee consignee, IList productSkuWithSchemeList, PurchaseOrderMode purchaseOrderMode, string remark, string orderId, long shopId, string extensions) { var cargoParamGroupList = CombineCargoParamGroup(productSkuWithSchemeList); return SendRequest(globalContext.BBWYApiHost, "api/purchaseOrder/CreatePurchaseOrder", new { purchaseOrderMode, consignee, cargoParamGroupList, globalContext.User.Shop.PurchaseAccountList, remark, orderId, shopId, extensions }, null, HttpMethod.Post); } /// /// 查询审核采购单 /// /// /// /// /// public ApiResponse> GetAuditPurchaseOrderList(IList shopIdList, DateTime startDate, DateTime endDate) { return SendRequest>(globalContext.BBWYApiHost, "Api/PurchaseOrder/GetAuditPurchaseOrderList", new { startDate, endDate, shopIdList }, null, HttpMethod.Post); } } }