diff --git a/BBWY.Client/APIServices/BatchPurchaseService.cs b/BBWY.Client/APIServices/BatchPurchaseService.cs index 569c5011..bd9a6435 100644 --- a/BBWY.Client/APIServices/BatchPurchaseService.cs +++ b/BBWY.Client/APIServices/BatchPurchaseService.cs @@ -31,5 +31,50 @@ namespace BBWY.Client.APIServices spu }, null, HttpMethod.Post); } + + public ApiResponse PreviewOrder(IList productSkuWithSchemeList, + Consignee consignee, + PurchaseOrderMode purchaseOrderMode, + IList purchaseAccountList) + { + + /* + public string PurchaseProductId { get; set; } + public string PuchaseSkuId { get; set; } + public string PurchaseSpecId { get; set; } + public int Quantity { get; set; } + public string PurchaserId { get; set; } + public string PurchaserName { get; set; } + public Enums.Platform PurchasePlatform { get; set; } + public string BelongSkuId { get; set; } + */ + + 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, + PurchaserId = productSkuWithScheme.PurchaserId, + PurchaserName = productSkuWithScheme.PurchaserName, + PurchasePlatform = productSkuWithScheme.PurchasePlatform, + BelongSkuId = productSkuWithScheme.SkuId + }); + } + } + + return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/PreviewOrder", new + { + consignee, + purchaseOrderMode, + purchaseAccountList, + productParamList + }, null, HttpMethod.Post); + } } } diff --git a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs index 510fa9f5..99543cea 100644 --- a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs +++ b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs @@ -19,6 +19,7 @@ namespace BBWY.Client.ViewModels private GlobalContext globalContext; private PurchaseProductAPIService purchaseProductAPIService; private PurchaseService purchaseService; + private BatchPurchaseService batchPurchaseService; private DelayTrigger delayTrigger; private bool isLoading; @@ -34,6 +35,10 @@ namespace BBWY.Client.ViewModels private string town; private string prucahseRemark; private PurchaseOrderMode purchaseOrderMode = PurchaseOrderMode.代发; + + private string tradeMode; + private string extensions; + public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } public decimal ProductAmount { get => productAmount; set { Set(ref productAmount, value); } } @@ -70,11 +75,15 @@ namespace BBWY.Client.ViewModels public ICommand SubtractQuantityCommand { get; set; } - public BatchPurchaseCreateNewOrderViewModel(PurchaseProductAPIService purchaseProductAPIService, PurchaseService purchaseService, GlobalContext globalContext) + public BatchPurchaseCreateNewOrderViewModel(PurchaseProductAPIService purchaseProductAPIService, + PurchaseService purchaseService, + GlobalContext globalContext, + BatchPurchaseService batchPurchaseService) { this.globalContext = globalContext; this.purchaseProductAPIService = purchaseProductAPIService; this.purchaseService = purchaseService; + this.batchPurchaseService = batchPurchaseService; ProductSkuWithSchemeList = new ObservableCollection(); FastCreateOrderCommand = new RelayCommand(FastCreateOrder); @@ -96,6 +105,15 @@ namespace BBWY.Client.ViewModels return; } + if (ProductSkuWithSchemeList.Count() == 0) + { + ProductAmount = 0; + FreightAmount = 0; + TotalAmount = 0; + IsLoading = false; + return; + } + if (string.IsNullOrEmpty(ContactName) || string.IsNullOrEmpty(Address) || string.IsNullOrEmpty(Mobile) || @@ -108,45 +126,35 @@ namespace BBWY.Client.ViewModels return; } - if (ProductSkuWithSchemeList.Count() == 0) - { - ProductAmount = 0; - FreightAmount = 0; - TotalAmount = 0; - IsLoading = false; - return; - } - IsLoading = true; - //IsLoading = true; - //Task.Factory.StartNew(() => purchaseOrderService.PreviewPurchaseOrder(new Consignee() - //{ - // Address = Address, - // City = City, - // ContactName = ContactName, - // County = County, - // Mobile = Mobile, - // Province = Province, - // TelePhone = Mobile, - // Town = Town - //}, PurchaseSchemeProductSkuList, purchaseAccount.PurchasePlatformId, purchaseAccount, PurchaseOrderMode)) - // .ContinueWith(t => - // { - // IsLoading = false; - // var r = t.Result; - // if (!r.Success) - // { - // ProductAmount = FreightAmount = TotalAmount = 0; - // tradeMode = string.Empty; - // App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价")); - // return; - // } - // ProductAmount = r.Data.ProductAmount; - // FreightAmount = r.Data.FreightAmount; - // TotalAmount = r.Data.TotalAmount; - // tradeMode = r.Data.OrderTradeType?.Code; - // extensions = r.Data.Extensions; - // }); + Task.Factory.StartNew(() => batchPurchaseService.PreviewOrder(ProductSkuWithSchemeList, new Consignee() + { + Address = Address, + City = City, + ContactName = ContactName, + County = County, + Mobile = Mobile, + Province = Province, + TelePhone = Mobile, + Town = Town + }, this.PurchaseOrderMode, globalContext.User.Shop.PurchaseAccountList)) + .ContinueWith(t => + { + IsLoading = false; + var r = t.Result; + if (!r.Success) + { + ProductAmount = FreightAmount = TotalAmount = 0; + tradeMode = string.Empty; + App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价")); + return; + } + ProductAmount = r.Data.ProductAmount; + FreightAmount = r.Data.FreightAmount; + TotalAmount = r.Data.TotalAmount; + tradeMode = r.Data.OrderTradeType?.Code; + extensions = r.Data.Extensions; + }); } private void PreviewOrder() diff --git a/BBWY.Server.API/Controllers/BatchPurchaseController.cs b/BBWY.Server.API/Controllers/BatchPurchaseController.cs index 7c59baa7..203851a6 100644 --- a/BBWY.Server.API/Controllers/BatchPurchaseController.cs +++ b/BBWY.Server.API/Controllers/BatchPurchaseController.cs @@ -32,9 +32,9 @@ namespace BBWY.Server.API.Controllers /// /// [HttpPost] - public PreviewOrderResponse PreviewOrderRequest([FromBody] BatchPurchasePreviewOrderRequest request) + public PreviewOrderResponse PreviewOrder([FromBody] BatchPurchasePreviewOrderRequest request) { - return batchPurchaseBusiness.PreviewOrderRequest(request); + return batchPurchaseBusiness.PreviewOrder(request); } } } diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index 78242f59..4c5b5dc0 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -104,7 +104,7 @@ namespace BBWY.Server.Business return list; } - public PreviewOrderResponse PreviewOrderRequest(BatchPurchasePreviewOrderRequest request) + public PreviewOrderResponse PreviewOrder(BatchPurchasePreviewOrderRequest request) { /* 记录报价日志