diff --git a/BBWY.Client/APIServices/PurchaseOrderService.cs b/BBWY.Client/APIServices/PurchaseOrderService.cs index 949a5b7a..e47fd4ab 100644 --- a/BBWY.Client/APIServices/PurchaseOrderService.cs +++ b/BBWY.Client/APIServices/PurchaseOrderService.cs @@ -75,5 +75,54 @@ namespace BBWY.Client.APIServices SaveResponseLog = true }, null, HttpMethod.Post); } + + /// + /// 创建采购单 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public ApiResponse FastCreateOrder(Consignee consignee, + IList purchaseSchemeProductSkuList, + Platform purchasePlatform, + PurchaseAccount purchaseAccount, + string tradeMode, + string remark, + string orderId, + long shopId, + string buyerAccount, + string sellerAccount) + { + return SendRequest(globalContext.BBYWApiHost, "api/purchaseOrder/FastCreateOrder", 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, + tradeMode, + remark, + orderId, + shopId, + buyerAccount, + sellerAccount + }, null, HttpMethod.Post); + } } } diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index 6e692a76..9075f60f 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -159,6 +159,11 @@ namespace BBWY.Client.ViewModels Task.Factory.StartNew(() => LoadOrder(1)); //选择状态查询订单 } + public void RefreshOrder() + { + Task.Factory.StartNew(() => LoadOrder(PageIndex)); + } + private void LoadOrder(int pageIndex) { IsLoading = true; diff --git a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs index 44845f06..694f5fcd 100644 --- a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs +++ b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs @@ -1,6 +1,7 @@ using BBWY.Client.APIServices; using BBWY.Client.Models; using BBWY.Common.Trigger; +using GalaSoft.MvvmLight.Command; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; @@ -9,11 +10,14 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows; +using System.Windows.Input; namespace BBWY.Client.ViewModels { public class _1688PreviewPurchaseViewModel : BaseVM { + public ICommand FastCreateOrderCommand { get; set; } + public IList PurchaseSchemeProductSkuList { get; set; } public PurchaseScheme PurchaseScheme { get; set; } @@ -32,6 +36,8 @@ namespace BBWY.Client.ViewModels public string Town { get => town; set { Set(ref town, value); } } public string PrucahseRemark { get => prucahseRemark; set { Set(ref prucahseRemark, value); } } + private OrderListViewModel orderListViewModel; + private GlobalContext globalContext; private string orderId; private int skuItemCount; private bool isLoading; @@ -53,13 +59,16 @@ namespace BBWY.Client.ViewModels private string tradeMode; - public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService) + public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService, GlobalContext globalContext, OrderListViewModel orderListViewModel) { this.oneBoundAPIService = oneBoundAPIService; this.purchaseOrderService = purchaseOrderService; this.delayTrigger = new DelayTrigger(); this.delayTrigger.OnExecute = OnDelayTriggerExecute; PurchaseSchemeProductSkuList = new ObservableCollection(); + FastCreateOrderCommand = new RelayCommand(FastCreateOrder); + this.globalContext = globalContext; + this.orderListViewModel = orderListViewModel; } public void SetData(string orderId, int skuItemCount, PurchaseScheme purchaseScheme, PurchaseAccount purchaseAccount, Consignee consignee) @@ -102,7 +111,11 @@ namespace BBWY.Client.ViewModels PurchaseSchemeProductSkuList.Clear(); PurchaseScheme = null; orderId = string.Empty; + tradeMode = string.Empty; skuItemCount = 0; + ProductAmount = FreightAmount = TotalAmount = 0; + ContactName = Address = Mobile = Province = City = County = Town = PrucahseRemark = string.Empty; + } private void LoadPurchaseProduct(PurchaseSchemeProduct purchaseSchemeProduct, ManualResetEvent ewh) @@ -221,5 +234,51 @@ namespace BBWY.Client.ViewModels tradeMode = r.Data.OrderTradeType?.Code; }); } + + private void FastCreateOrder() + { + if (TotalAmount == 0) + { + MessageBox.Show("总金额为0不能提交订单", "提示"); + return; + } + + IsLoading = true; + + Task.Factory.StartNew(() => purchaseOrderService.FastCreateOrder(new Consignee() + { + Address = Address, + City = City, + ContactName = ContactName, + County = County, + Mobile = Mobile, + Province = Province, + TelePhone = Mobile, + Town = Town + }, PurchaseSchemeProductSkuList, + Platform.阿里巴巴, + PurchaseAccount, + tradeMode, + PrucahseRemark, + orderId, + globalContext.User.Shop.ShopId, + PurchaseAccount.AccountName, + PurchaseScheme.PurchaserName)).ContinueWith(t => + { + IsLoading = false; + var r = t.Result; + if (!r.Success) + { + App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "下单")); + return; + } + + //刷新订单列表 + orderListViewModel.RefreshOrder(); + + //关闭当前窗口 + GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(null, "OnlinePurchase_Close"); + }); + } } } diff --git a/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs b/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs index bd329b2d..181cfe0c 100644 --- a/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs +++ b/BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs @@ -1,4 +1,5 @@ using BBWY.Controls; +using GalaSoft.MvvmLight.Messaging; namespace BBWY.Client.Views.Order { @@ -10,7 +11,18 @@ namespace BBWY.Client.Views.Order public ChoosePurchaseScheme() { InitializeComponent(); - GalaSoft.MvvmLight.Messaging.Messenger.Default.Register(this, "ChoosePurchaseScheme_Close", (x) => this.Close()); + this.Loaded += ChoosePurchaseScheme_Loaded; + this.Unloaded += ChoosePurchaseScheme_Unloaded; + } + + private void ChoosePurchaseScheme_Unloaded(object sender, System.Windows.RoutedEventArgs e) + { + Messenger.Default.Unregister(this); + } + + private void ChoosePurchaseScheme_Loaded(object sender, System.Windows.RoutedEventArgs e) + { + 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 0cc45bd2..adfa7a4e 100644 --- a/BBWY.Client/Views/Purchase/1688Purchase.xaml +++ b/BBWY.Client/Views/Purchase/1688Purchase.xaml @@ -122,6 +122,7 @@ - + diff --git a/BBWY.Client/Views/Purchase/1688Purchase.xaml.cs b/BBWY.Client/Views/Purchase/1688Purchase.xaml.cs index b96521d8..28b1e5b3 100644 --- a/BBWY.Client/Views/Purchase/1688Purchase.xaml.cs +++ b/BBWY.Client/Views/Purchase/1688Purchase.xaml.cs @@ -1,6 +1,7 @@ using BBWY.Client.Models; using BBWY.Client.ViewModels; using BBWY.Controls; +using GalaSoft.MvvmLight.Messaging; namespace BBWY.Client.Views.Purchase { @@ -13,6 +14,18 @@ namespace BBWY.Client.Views.Purchase { InitializeComponent(); (this.DataContext as _1688PreviewPurchaseViewModel).SetData(orderId, skuItemCount, purchaseScheme, purchaseAccount, consignee); + this.Loaded += _1688Purchase_Loaded; + this.Unloaded += _1688Purchase_Unloaded; + } + + private void _1688Purchase_Unloaded(object sender, System.Windows.RoutedEventArgs e) + { + Messenger.Default.Unregister(this); + } + + private void _1688Purchase_Loaded(object sender, System.Windows.RoutedEventArgs e) + { + Messenger.Default.Register(this, "OnlinePurchase_Close", (x) => this.Close()); } } }