diff --git a/BBWYB.Client/APIServices/PurchaseOrderService.cs b/BBWYB.Client/APIServices/PurchaseOrderService.cs index 0450938..2773b73 100644 --- a/BBWYB.Client/APIServices/PurchaseOrderService.cs +++ b/BBWYB.Client/APIServices/PurchaseOrderService.cs @@ -15,6 +15,45 @@ namespace BBWYB.Client.APIServices } + /// + /// 按采购商分组组装采购产品参数 + /// + /// + /// + 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 + }); + } + } + + var cargoParamGroup = new + { + PurchaserId = purchaserGroup.Key, + first.PurchaserName, + first.PurchasePlatform, + cargoParamList + }; + cargoParamGroupList.Add(cargoParamGroup); + } + return cargoParamGroupList; + } /// /// 预览订单 @@ -22,25 +61,15 @@ namespace BBWYB.Client.APIServices /// /// /// - public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode) + public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList productSkuWithSchemeList, Platform purchasePlatform, PurchaseOrderMode purchaseOrderMode) { + var cargoParamGroupList = CombineCargoParamGroup(productSkuWithSchemeList); return SendRequest(globalContext.BBYWApiHost, "api/PurchaseOrder/PreviewPurchaseOrder", new { purchaseOrderMode, consignee, - CargoParamList = purchaseSchemeProductSkuList.Select(sku => new - { - ProductId = sku.PurchaseProductId, - SkuId = sku.PurchaseSkuId, - SpecId = sku.PurchaseSkuSpecId, - Quantity = sku.ItemTotal, - BelongSkuId = sku.SkuId - }), - Platform = purchasePlatform, - purchaseAccount.AppKey, - purchaseAccount.AppSecret, - purchaseAccount.AppToken, - SaveResponseLog = true + cargoParamGroupList, + globalContext.User.Shop.PurchaseAccountList }, null, HttpMethod.Post); } @@ -52,26 +81,18 @@ namespace BBWYB.Client.APIServices /// /// /// - /// /// /// /// - /// - /// - /// - /// - /// + /// /// /// public ApiResponse FastCreateOrder(Consignee consignee, IList purchaseSchemeProductSkuList, - Platform purchasePlatform, - PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode, string remark, string orderId, long shopId, - string purchaserName, string extensions) { return SendRequest(globalContext.BBYWApiHost, "api/purchaseOrder/CreatePurchaseOrder", new diff --git a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs b/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs index ea93615..6223c3c 100644 --- a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs +++ b/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs @@ -156,42 +156,6 @@ namespace BBWYB.Client.ViewModels WaitHandle.WaitAll(waitList.ToArray()); PreviewOrder(); //预览订单 }); - - //Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(order.ItemList.Select(osku => osku.SkuId).ToList(), purchaser.Id, globalContext.User.Shop.ShopId)) - // .ContinueWith(r => - // { - // var purchaseSchemeResponse = r.Result; - // if (!purchaseSchemeResponse.Success) - // { - // IsLoading = false; - // App.Current.Dispatcher.Invoke(() => MessageBox.Show(purchaseSchemeResponse.Msg, "获取采购方案")); - // return; - // } - - // var waitList = new List(); - // foreach (var purchaseSchemeApiModel in purchaseSchemeResponse.Data) - // { - // var purchaseScheme = PurchaseScheme.Convert(purchaseSchemeApiModel); - // purchaseSchemeList.Add(purchaseScheme); - // foreach (var purchaseSchemeProduct in purchaseScheme.PurchaseSchemeProductList) - // { - // var ewh = new ManualResetEvent(false); - // waitList.Add(ewh); - // var orderSku = order.ItemList.FirstOrDefault(osku => osku.SkuId == purchaseScheme.SkuId); - // Task.Factory.StartNew(() => LoadPurchaseProduct(purchaseScheme.PurchasePlatform, purchaseSchemeProduct, orderSku, ewh)); - // } - // } - - // WaitHandle.WaitAll(waitList.ToArray()); - // //IsLoading = false; - // if (PurchaseSchemeProductSkuList.Count() > 0) - // OnDelayTriggerExecute(Guid.NewGuid().ToString()); - // else - // { - // IsLoading = false; - // App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示")); - // } - // }); } private void LoadPurchaseScheme(ProductSkuWithScheme productSkuWithScheme, PurchaseScheme purchaseScheme, EventWaitHandle ewh)