From 17a269c07875bc816082ec9e155dc556c6102efc Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Mar 2023 13:35:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=9C=8D=E5=8A=A1=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APIServices/ServiceOrderService.cs | 33 ++++++++++++- .../ServiceOrder/EditServiceOrderViewModel.cs | 49 ++++++++++++++++--- .../ServiceOrder/ServiceOrderViewModel.cs | 33 +++++++++++-- 3 files changed, 105 insertions(+), 10 deletions(-) diff --git a/BBWY.Client/APIServices/ServiceOrderService.cs b/BBWY.Client/APIServices/ServiceOrderService.cs index b4436205..e4987264 100644 --- a/BBWY.Client/APIServices/ServiceOrderService.cs +++ b/BBWY.Client/APIServices/ServiceOrderService.cs @@ -39,6 +39,37 @@ namespace BBWY.Client.APIServices endDate }, null, HttpMethod.Post); } - } + public ApiResponse EditServiceOrder(long servicePId, + string orderId, + ServiceResult? serviceResult, + decimal? sdRefundFreight, + ReturnDirection? returnDirection, + string renewalOrderId, + decimal? reissueAfterSaleAmount, + string returnCheckRemark, + StorageType? renewalType, + string renewalPurchaseOrderId, + Platform? renewalPurchasePlatform, + decimal? reissueFreight, + decimal? reissueProductAmount) + { + return SendRequest(globalContext.BBYWApiHost, "Api/ServiceOrder/EditServiceOrder", new + { + servicePId, + orderId, + serviceResult, + sdRefundFreight, + returnDirection, + renewalOrderId, + reissueAfterSaleAmount, + returnCheckRemark, + renewalType, + renewalPurchaseOrderId, + renewalPurchasePlatform, + reissueFreight, + reissueProductAmount + }, null, HttpMethod.Post); + } + } } \ No newline at end of file diff --git a/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs b/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs index 7778721a..4fcbee5f 100644 --- a/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs +++ b/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs @@ -1,15 +1,21 @@ -using BBWY.Client.Models; +using BBWY.Client.APIServices; +using BBWY.Client.Models; using GalaSoft.MvvmLight.Command; +using HandyControl.Controls; +using System.Threading.Tasks; using System.Windows.Input; namespace BBWY.Client.ViewModels { public class EditServiceOrderViewModel : BaseVM { + + private ServiceOrderService serviceOrderService; /// /// 主键Id /// private long servicePId; + private string orderId; private ServiceResult? serviceResult; private decimal? sdRefundFreight; private ReturnDirection? returnDirection; @@ -21,6 +27,8 @@ namespace BBWY.Client.ViewModels private Platform? renewalPurchasePlatform; private decimal? reissueFreight; private decimal? reissueProductAmount; + private bool isLoading; + public ServiceResult? ServiceResult { get => serviceResult; set { Set(ref serviceResult, value); } } public decimal? SDRefundFreight { get => sdRefundFreight; set { Set(ref sdRefundFreight, value); } } @@ -44,17 +52,23 @@ namespace BBWY.Client.ViewModels public Platform? RenewalPurchasePlatform { get => renewalPurchasePlatform; set { Set(ref renewalPurchasePlatform, value); } } public ICommand SaveCommand { get; set; } + public decimal? ReissueFreight { get => reissueFreight; set { Set(ref reissueFreight, value); } } + public decimal? ReissueProductAmount { get => reissueProductAmount; set { Set(ref reissueProductAmount, value); } } - public EditServiceOrderViewModel() + public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } + + public EditServiceOrderViewModel(ServiceOrderService serviceOrderService) { + this.serviceOrderService = serviceOrderService; SaveCommand = new RelayCommand(Save); } public void SetData(ServiceOrder serviceOrder) { this.servicePId = serviceOrder.Id; + this.orderId = serviceOrder.OrderId; this.ServiceResult = serviceOrder.ServiceResult; this.SDRefundFreight = serviceOrder.SDRefundFreight; this.ReturnDirection = serviceOrder.ReturnDirection; @@ -70,10 +84,33 @@ namespace BBWY.Client.ViewModels private void Save() { - - - //closeEditServiceOrder - GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(true, "closeEditServiceOrder"); + if (IsLoading) + return; + IsLoading = true; + Task.Factory.StartNew(() => serviceOrderService.EditServiceOrder(servicePId, + orderId, + ServiceResult, + SDRefundFreight, + ReturnDirection, + RenewalOrderId, + ReissueAfterSaleAmount, + ReturnCheckRemark, + RenewalType, + RenewalPurchaseOrderId, + RenewalPurchasePlatform, + ReissueFreight, + ReissueProductAmount)).ContinueWith(t => + { + IsLoading = false; + var r = t.Result; + if (!r.Success) + { + App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "提示")); + return; + } + //closeEditServiceOrder + GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(true, "closeEditServiceOrder"); + }); } } } diff --git a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs index d83e2fac..bfab5935 100644 --- a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs +++ b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs @@ -163,10 +163,9 @@ namespace BBWY.Client.ViewModels { s.ProductPackage = ProductPackage.新; s.ImageName = "20230317071208762563,8d58b491-7859-4187-9f43-4fd177a0f25f,b0df0763-9cf4-40ca-a1fc-57695e4b8d33"; } - - s.Init(); #endregion + s.Init(); ServiceOrderList.Add(s); } }); @@ -252,8 +251,36 @@ namespace BBWY.Client.ViewModels var r = w.ShowDialog(); if (r == true) { - //Refresh ServiceOrder + IsLoading = true; + Task.Factory.StartNew(() => RefreshServiceOrder(serviceOrder)); + } + } + + private void RefreshServiceOrder(long servicePId) + { + var order = ServiceOrderList.FirstOrDefault(s => s.Id == servicePId); + RefreshServiceOrder(order); + } + + private void RefreshServiceOrder(ServiceOrder serviceOrder) + { + var serviceOrderResponse = serviceOrderService.GetList(string.Empty, string.Empty, string.Empty, serviceOrder.ServiceId, serviceOrder.ShopId, null, null, 1, 1, null, null); + IsLoading = false; + if (!serviceOrderResponse.Success) + { + Application.Current.Dispatcher.Invoke(() => MessageBox.Show(serviceOrderResponse.Msg, "刷新服务单")); + return; } + + var newServiceOrder = serviceOrderResponse.Data.Items.FirstOrDefault().Map(); + newServiceOrder.Init(); + + Application.Current.Dispatcher.Invoke(() => + { + var orderIndex = ServiceOrderList.IndexOf(serviceOrder); + ServiceOrderList.Remove(serviceOrder); + ServiceOrderList.Insert(orderIndex, newServiceOrder); + }); } } }