From 034b6159ae466473c63d3a09b3d09f1581695991 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 4 Mar 2022 01:57:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E9=A2=84?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APIServices/PurchaseOrderService.cs | 27 +++++++++++++ .../APIModel/Response/Order/OrderResponse.cs | 5 +++ .../OnlinePurchase/PreviewOrderResponse.cs | 20 ++++++++++ .../PurchaseOrderResponse.cs | 0 BBWY.Client/Models/Order/Order.cs | 5 ++- .../Order/ChoosePurchaseSchemeViewModel.cs | 1 + .../Purchase/1688PreviewPurchaseViewModel.cs | 40 ++++++++++++++++--- .../Ware/BindingPurchaseProductViewModel.cs | 7 ++-- .../Views/Order/ChoosePurchaseScheme.xaml.cs | 1 + BBWY.Client/Views/Purchase/1688Purchase.xaml | 5 ++- BBWY.Server.Business/Order/OrderBusiness.cs | 1 + .../PlatformSDK/_1688Business.cs | 22 +++++----- BBWY.Server.Model/Db/Order/Order.cs | 3 ++ .../OnlinePurchase/PreviewOrderReuqest.cs | 2 +- .../Dto/Response/Order/OrderResponse.cs | 5 +++ 15 files changed, 124 insertions(+), 20 deletions(-) create mode 100644 BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs rename BBWY.Client/Models/APIModel/Response/{ => PurchaseOrder}/PurchaseOrderResponse.cs (100%) diff --git a/BBWY.Client/APIServices/PurchaseOrderService.cs b/BBWY.Client/APIServices/PurchaseOrderService.cs index ba7d78e7..949a5b7a 100644 --- a/BBWY.Client/APIServices/PurchaseOrderService.cs +++ b/BBWY.Client/APIServices/PurchaseOrderService.cs @@ -2,6 +2,7 @@ using BBWY.Common.Http; using BBWY.Common.Models; using System.Collections.Generic; +using System.Linq; using System.Net.Http; namespace BBWY.Client.APIServices @@ -48,5 +49,31 @@ namespace BBWY.Client.APIServices null, HttpMethod.Delete); } + + /// + /// 预览订单 + /// + /// + /// + /// + public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount) + { + return SendRequest(globalContext.BBYWApiHost, "api/purchaseOrder/PreviewPurchaseOrder", new + { + consignee, + CargoParamList = purchaseSchemeProductSkuList.Select(sku => new + { + ProductId = sku.PurchaseProductId, + SkuId = sku.PurchaseSkuId, + SpecId = sku.PurchaseSkuSpecId, + Quantity = sku.ItemTotal + }), + Platform = purchasePlatform, + AppKey = purchaseAccount.AppKey, + AppSecret = purchaseAccount.AppSecret, + AppToken = purchaseAccount.AppToken, + SaveResponseLog = true + }, null, HttpMethod.Post); + } } } diff --git a/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs index 446e7072..a285f0d9 100644 --- a/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs @@ -86,6 +86,11 @@ namespace BBWY.Client.Models /// public string VenderRemark { get; set; } + /// + /// 采购备注 + /// + public string PurchaseRemark { get; set; } + public StorageType? StorageType { get; set; } /// diff --git a/BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs new file mode 100644 index 00000000..cc15aa01 --- /dev/null +++ b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs @@ -0,0 +1,20 @@ +namespace BBWY.Client.Models +{ + public class PreviewOrderResponse + { + /// + /// 总额 + /// + public decimal TotalAmount { get; set; } + + /// + /// 货款总额 + /// + public decimal ProductAmount { get; set; } + + /// + /// 运费 + /// + public decimal FreightAmount { get; set; } + } +} diff --git a/BBWY.Client/Models/APIModel/Response/PurchaseOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs similarity index 100% rename from BBWY.Client/Models/APIModel/Response/PurchaseOrderResponse.cs rename to BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs diff --git a/BBWY.Client/Models/Order/Order.cs b/BBWY.Client/Models/Order/Order.cs index 8a289fd0..0c09ee2c 100644 --- a/BBWY.Client/Models/Order/Order.cs +++ b/BBWY.Client/Models/Order/Order.cs @@ -93,7 +93,10 @@ namespace BBWY.Client.Models /// public string VenderRemark { get; set; } - + /// + /// 采购备注 + /// + public string PurchaseRemark { get; set; } /// /// 仓储类型 diff --git a/BBWY.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs b/BBWY.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs index 51463b7f..2c9f2ac2 100644 --- a/BBWY.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs +++ b/BBWY.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs @@ -114,6 +114,7 @@ namespace BBWY.Client.ViewModels } else if (count == 1) { + GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(null, "ChoosePurchaseScheme_Close"); var p = new _1688Purchase(this.OrderId, this.ItemTotal, purchaseScheme, globalContext.User.Shop.PurchaseAccountList[0], this.Consignee); p.ShowDialog(); } diff --git a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs index 483d1e9a..5b5d486b 100644 --- a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs +++ b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs @@ -8,6 +8,7 @@ using System.Collections.ObjectModel; using System.Linq; using System.Threading; using System.Threading.Tasks; +using System.Windows; namespace BBWY.Client.ViewModels { @@ -29,11 +30,13 @@ namespace BBWY.Client.ViewModels public string City { get => city; set { Set(ref city, value); } } public string County { get => county; set { Set(ref county, value); } } public string Town { get => town; set { Set(ref town, value); } } + public string PrucahseRemark { get => prucahseRemark; set { Set(ref prucahseRemark, value); } } private string orderId; private int skuItemCount; private bool isLoading; private OneBoundAPIService oneBoundAPIService; + private PurchaseOrderService purchaseOrderService; private DelayTrigger delayTrigger; private decimal productAmount; @@ -46,10 +49,12 @@ namespace BBWY.Client.ViewModels private string city; private string county; private string town; + private string prucahseRemark; - public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService) + public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService) { this.oneBoundAPIService = oneBoundAPIService; + this.purchaseOrderService = purchaseOrderService; this.delayTrigger = new DelayTrigger(); this.delayTrigger.OnExecute = OnDelayTriggerExecute; PurchaseSchemeProductSkuList = new ObservableCollection(); @@ -85,7 +90,8 @@ namespace BBWY.Client.ViewModels Task.Factory.StartNew(() => { WaitHandle.WaitAll(waitList.ToArray()); - IsLoading = false; + //IsLoading = false; + OnDelayTriggerExecute(string.Empty); }); } @@ -102,7 +108,7 @@ namespace BBWY.Client.ViewModels var purchaseSchemeProductSkuList = LoadPurchaseProductCore(purchaseSchemeProduct.PurchaseProductId, out string errorMsg); if (purchaseSchemeProductSkuList != null && purchaseSchemeProductSkuList.Count > 0) { - App.Current.Dispatcher.BeginInvoke((Action)delegate + App.Current.Dispatcher.Invoke(() => { foreach (var purchaseSchemeProductSku in purchaseSchemeProductSkuList) { @@ -117,7 +123,6 @@ namespace BBWY.Client.ViewModels } ewh.Set(); ewh.Dispose(); - } private IList LoadPurchaseProductCore(string purchseProductId, out string errorMsg) @@ -185,7 +190,32 @@ namespace BBWY.Client.ViewModels private void OnDelayTriggerExecute(string key) { - + 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, Platform.阿里巴巴, PurchaseAccount)) + .ContinueWith(t => + { + IsLoading = false; + var r = t.Result; + if (!r.Success) + { + ProductAmount = FreightAmount = TotalAmount = 0; + App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价")); + return; + } + ProductAmount = r.Data.ProductAmount; + FreightAmount = r.Data.FreightAmount; + TotalAmount = r.Data.TotalAmount; + }); } } } diff --git a/BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs b/BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs index a23d4a25..61eb6f46 100644 --- a/BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs +++ b/BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs @@ -98,8 +98,8 @@ namespace BBWY.Client.ViewModels var waitList = new List(); foreach (var sku in ProductSkuList) { - //当前SKU下当前采购商的采购方案 - var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId); + //当前SKU下当前采购商的采购方案 + var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId); if (apiScheme == null) continue; @@ -246,6 +246,7 @@ namespace BBWY.Client.ViewModels productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Add(new PurchaseSchemeProduct() { + Id = DateTime.Now.ToFileTime(), IsEditing = true, ProductId = productSku.ProductId, SkuId = productSku.Id @@ -280,7 +281,7 @@ namespace BBWY.Client.ViewModels } var sku = ProductSkuList.FirstOrDefault(s => s.Id == purchaseSchemeProduct.SkuId); var purchaseUrl = match.Groups[1].Value; - if (sku.SelectedPurchaseScheme.PurchaseSchemeProductList.Any(p => p.PurchaseUrl == purchaseUrl)) + if (sku.SelectedPurchaseScheme.PurchaseSchemeProductList.Any(p => p.Id != purchaseSchemeProduct.Id && p.PurchaseUrl == purchaseUrl)) { MessageBox.Show("商品链接重复"); return; diff --git a/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs b/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs index afd36fd8..bd329b2d 100644 --- a/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs +++ b/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs @@ -10,6 +10,7 @@ namespace BBWY.Client.Views.Order public ChoosePurchaseScheme() { InitializeComponent(); + GalaSoft.MvvmLight.Messaging.Messenger.Default.Register(this, "ChoosePurchaseScheme_Close", (x) => this.Close()); } } } diff --git a/BBWY.Client/Views/Purchase/1688Purchase.xaml b/BBWY.Client/Views/Purchase/1688Purchase.xaml index 0d55199a..0cc45bd2 100644 --- a/BBWY.Client/Views/Purchase/1688Purchase.xaml +++ b/BBWY.Client/Views/Purchase/1688Purchase.xaml @@ -28,6 +28,9 @@ + + + @@ -77,7 +80,7 @@ - (), flow = "general" @@ -85,9 +86,12 @@ namespace BBWY.Server.Business throw new BusinessException(result.Value("errorMsg")) { Code = 0 }; } + var orderPreviewResuslt = (JArray)result["orderPreviewResuslt"]; return new PreviewOrderResponse() { - + FreightAmount = orderPreviewResuslt.Sum(jt => jt.Value("sumCarriage")) / 100M, + ProductAmount = orderPreviewResuslt.Sum(jt => jt.Value("sumPaymentNoCarriage")) / 100M, + TotalAmount = orderPreviewResuslt.Sum(jt => jt.Value("sumPayment")) / 100M }; } } diff --git a/BBWY.Server.Model/Db/Order/Order.cs b/BBWY.Server.Model/Db/Order/Order.cs index e5d467e9..5e5f8f9e 100644 --- a/BBWY.Server.Model/Db/Order/Order.cs +++ b/BBWY.Server.Model/Db/Order/Order.cs @@ -116,6 +116,9 @@ namespace BBWY.Server.Model.Db public string VenderRemark { get; set; } + + public string PurchaseRemark { get; set; } + /// /// 仓库Id /// diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs index b74f31ef..ffe3c825 100644 --- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs @@ -4,7 +4,7 @@ namespace BBWY.Server.Model.Dto { public class PreviewOrderReuqest: PlatformRequest { - public ConsigneeRequest ConsigneeRequest { get; set; } + public ConsigneeRequest Consignee { get; set; } public IList CargoParamList { get; set; } } diff --git a/BBWY.Server.Model/Dto/Response/Order/OrderResponse.cs b/BBWY.Server.Model/Dto/Response/Order/OrderResponse.cs index b0643a61..3c9b1d79 100644 --- a/BBWY.Server.Model/Dto/Response/Order/OrderResponse.cs +++ b/BBWY.Server.Model/Dto/Response/Order/OrderResponse.cs @@ -92,6 +92,11 @@ namespace BBWY.Server.Model.Dto /// public string VenderRemark { get; set; } + /// + /// 采购备注 + /// + public string PurchaseRemark { get; set; } + public Enums.StorageType? StorageType { get; set; } ///