diff --git a/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs b/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs index 10bf31a6..19dd900d 100644 --- a/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs @@ -276,6 +276,8 @@ namespace BBWY.Client.Models public decimal Price { get; set; } #endregion + + public StorageType? StorageType { get; set; } } public class ServiceOrderResponse diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index 1a418503..541b0364 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -47,7 +47,7 @@ namespace BBWY.Client.ViewModels private bool onlyUnhandle; private Random random; public GlobalContext globalContext { get; set; } - private bool? includeAfterOrder; + //private bool? includeAfterOrder; private bool includeExceptionOrder; //private decimal currentConditionsTotalProfit; private string searchServiceId; @@ -90,7 +90,7 @@ namespace BBWY.Client.ViewModels public bool ExcludeSD { get => excludeSD; set { Set(ref excludeSD, value); } } public bool ExcludeCanceled { get => excludeCanceled; set { Set(ref excludeCanceled, value); } } - public bool? IncludeAfterOrder { get => includeAfterOrder; set { Set(ref includeAfterOrder, value); } } + //public bool? IncludeAfterOrder { get => includeAfterOrder; set { Set(ref includeAfterOrder, value); } } public string SearchServiceId { get => searchServiceId; set { Set(ref searchServiceId, value); } } /// @@ -128,13 +128,13 @@ namespace BBWY.Client.ViewModels public ICommand EditVenderRemarkCommand { get; set; } - public ICommand SetIncludeAfterOrderCommand { get; set; } + //public ICommand SetIncludeAfterOrderCommand { get; set; } - public ICommand FindAfterSaleOrderCommand { get; set; } + //public ICommand FindAfterSaleOrderCommand { get; set; } - public ICommand EditAfterSaleOrderCommand { get; set; } + //public ICommand EditAfterSaleOrderCommand { get; set; } - public ICommand EditAfterSaleOrderRefundPurchaseAmountCommand { get; set; } + //public ICommand EditAfterSaleOrderRefundPurchaseAmountCommand { get; set; } public ICommand SetIncludeExceptionOrderCommand { get; set; } @@ -227,11 +227,11 @@ namespace BBWY.Client.ViewModels OutStockCommand = new RelayCommand((o) => OutStock(o)); EditVenderRemarkCommand = new RelayCommand(EditVenderRemark); ExportCommand = new RelayCommand(Export); - SetIncludeAfterOrderCommand = new RelayCommand(SetIncludeAfterOrder); + //SetIncludeAfterOrderCommand = new RelayCommand(SetIncludeAfterOrder); SetIncludeExceptionOrderCommand = new RelayCommand(SetIncludeExceptionOrder); - EditAfterSaleOrderCommand = new RelayCommand(EditAfterSaleOrder); - EditAfterSaleOrderRefundPurchaseAmountCommand = new RelayCommand(EditAfterSaleOrderRefundPurchaseAmount); - FindAfterSaleOrderCommand = new RelayCommand(FindAfterSaleOrder); + //EditAfterSaleOrderCommand = new RelayCommand(EditAfterSaleOrder); + //EditAfterSaleOrderRefundPurchaseAmountCommand = new RelayCommand(EditAfterSaleOrderRefundPurchaseAmount); + //FindAfterSaleOrderCommand = new RelayCommand(FindAfterSaleOrder); OpenSkuDetailCommand = new RelayCommand(OpenSkuDetail); SearchOrderCommand.Execute(null); } @@ -254,7 +254,7 @@ namespace BBWY.Client.ViewModels StartDate = DateTime.Now.Date; } PageIndex = 1; - IncludeAfterOrder = null; + //IncludeAfterOrder = null; IncludeExceptionOrder = false; } @@ -300,23 +300,23 @@ namespace BBWY.Client.ViewModels Task.Factory.StartNew(() => LoadOrder(1)); } - public void SetIncludeAfterOrder() - { - InitSearchParam(); - IncludeAfterOrder = true; - Task.Factory.StartNew(() => LoadOrder(1)); - } - - public void SetIncludeAfterOrder(string orderId, string skuId, DateTime startDate, DateTime endDate) - { - InitSearchParam(); - SearchOrderId = orderId; - SearchSku = skuId; - StartDate = startDate; - EndDate = endDate; - IncludeAfterOrder = true; - Task.Factory.StartNew(() => LoadOrder(1)); - } + //public void SetIncludeAfterOrder() + //{ + // InitSearchParam(); + // IncludeAfterOrder = true; + // Task.Factory.StartNew(() => LoadOrder(1)); + //} + + //public void SetIncludeAfterOrder(string orderId, string skuId, DateTime startDate, DateTime endDate) + //{ + // InitSearchParam(); + // SearchOrderId = orderId; + // SearchSku = skuId; + // StartDate = startDate; + // EndDate = endDate; + // IncludeAfterOrder = true; + // Task.Factory.StartNew(() => LoadOrder(1)); + //} public void RefreshOrder(string orderId, bool isRemoveOrder = false) { @@ -389,10 +389,10 @@ namespace BBWY.Client.ViewModels /// private void LoadOrder(int pageIndex) { - if (IncludeAfterOrder == true) - LoadAfterSaleOrder(pageIndex); - else - LoadNormalOrder(pageIndex); + //if (IncludeAfterOrder == true) + // LoadAfterSaleOrder(pageIndex); + //else + LoadNormalOrder(pageIndex); if (!IsSDGroup) { @@ -401,7 +401,7 @@ namespace BBWY.Client.ViewModels } else { - Task.Factory.StartNew(() => LoadSDGroupPersonStatistics()); + Task.Factory.StartNew(() => LoadSDGroupPersonStatistics()); } } @@ -437,7 +437,7 @@ namespace BBWY.Client.ViewModels var orderList = response.Data.Items.Map>(); App.Current.Dispatcher.Invoke(() => { - + OrderList.Clear(); foreach (var order in orderList) { @@ -861,22 +861,22 @@ namespace BBWY.Client.ViewModels var manualEditCostOrderSkuList = manualCalculationCost.ManualEditCostOrderSkuList; IsLoading = true; - Task.Factory.StartNew(() => orderService.ManualCalculationCost(orderId, - isSetStorageType, - storageType, - manualEditCostOrderSkuList, - globalContext.User.Shop.PlatformCommissionRatio ?? 0.05M)).ContinueWith(r => - { - var response = r.Result; - if (!response.Success) - { - IsLoading = false; - App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "手动计算成本")); - return; - } - //LoadOrder(PageIndex); //手动计算成功刷新订单列表 - RefreshOrder(orderId, isSetStorageType); - }); + Task.Factory.StartNew(() => orderService.ManualCalculationCost(orderId, + isSetStorageType, + storageType, + manualEditCostOrderSkuList, + globalContext.User.Shop.PlatformCommissionRatio ?? 0.05M)).ContinueWith(r => + { + var response = r.Result; + if (!response.Success) + { + IsLoading = false; + App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "手动计算成本")); + return; + } + //LoadOrder(PageIndex); //手动计算成功刷新订单列表 + RefreshOrder(orderId, isSetStorageType); + }); } private void OutStock(Order o) @@ -919,15 +919,15 @@ namespace BBWY.Client.ViewModels private void SyncOrder() { IsLoading = true; - Task.Factory.StartNew(() => orderService.SyncOrder(globalContext.User.Shop.ShopId, StartDate, EndDate)).ContinueWith(r => - { - IsLoading = false; - var response = r.Result; - if (response.Success) - App.Current.Dispatcher.Invoke(() => MessageBox.Show("同步任务创建成功,该任务会执行一段时间,请稍后查询订单列表观察同步结果", "同步订单")); - else - App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "同步订单")); - }); + Task.Factory.StartNew(() => orderService.SyncOrder(globalContext.User.Shop.ShopId, StartDate, EndDate)).ContinueWith(r => + { + IsLoading = false; + var response = r.Result; + if (response.Success) + App.Current.Dispatcher.Invoke(() => MessageBox.Show("同步任务创建成功,该任务会执行一段时间,请稍后查询订单列表观察同步结果", "同步订单")); + else + App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "同步订单")); + }); } private void EditVenderRemark(Order order) @@ -1022,84 +1022,84 @@ namespace BBWY.Client.ViewModels }); } - private void EditAfterSaleOrder(AfterSaleOrder afterSaleOrder) - { - var w = new EditAfterSaleOrderSku(afterSaleOrder); - w.Closed += EditAfterSaleOrderSku_Closed; - w.ShowDialog(); - } - - private void EditAfterSaleOrderSku_Closed(object sender, EventArgs e) - { - var w = sender as EditAfterSaleOrderSku; - if (w.DialogResult != true) - return; - - var afterSaleOrder = w.SaleOrder; - IsLoading = true; - Task.Factory.StartNew(() => afterOrderService.EditAfterSaleOrder(afterSaleOrder.Id, - afterSaleOrder.OrderId, - afterSaleOrder.ProductResult.Value, - afterSaleOrder.ServiceResult.Value, - afterSaleOrder.ProductHealth.Value, - afterSaleOrder.ReissueAfterSaleAmount, - afterSaleOrder.ReissueFreight, - afterSaleOrder.ReissueProductAmount, - afterSaleOrder.SDRefundFreight)).ContinueWith(t => - { - var response = t.Result; - if (!response.Success) - { - IsLoading = false; - App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "修改售后")); - return; - } - RefreshAfterOrder(afterSaleOrder.Id); - }); - } - - private void EditAfterSaleOrderRefundPurchaseAmount(AfterSaleOrder afterSaleOrder) - { - var w = new EditAfterSaleOrderRefundPurchaseAmount(afterSaleOrder); - w.Closed += EditAfterSaleOrderRefundPurchaseAmount_Closed; - w.ShowDialog(); - } - - private void EditAfterSaleOrderRefundPurchaseAmount_Closed(object sender, EventArgs e) - { - var w = sender as EditAfterSaleOrderRefundPurchaseAmount; - if (w.DialogResult != true) - return; - - var afterSaleOrder = w.SaleOrder; - IsLoading = true; - Task.Factory.StartNew(() => afterOrderService.EditAfterSaleOrderRefundPurchaseAmount(afterSaleOrder.Id, - afterSaleOrder.OrderId, - afterSaleOrder.RefundPurchaseAmount.Value, - afterSaleOrder.RefundMerchantOrderNo, - afterSaleOrder.RefundAlipayOrderNo)) - .ContinueWith(t => - { - var response = t.Result; - if (!response.Success) - { - IsLoading = false; - App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "修改采购退款")); - return; - } - RefreshAfterOrder(afterSaleOrder.Id); - }); - } - - private void FindAfterSaleOrder(object param) - { - var paramList = (object[])param; - var orderId = paramList[0].ToString(); - var skuId = paramList[1].ToString(); - var startDate = DateTime.Parse(paramList[2].ToString()).Date; - var endDate = DateTime.Now.Date; - SetIncludeAfterOrder(orderId, skuId, startDate, endDate); - } + //private void EditAfterSaleOrder(AfterSaleOrder afterSaleOrder) + //{ + // var w = new EditAfterSaleOrderSku(afterSaleOrder); + // w.Closed += EditAfterSaleOrderSku_Closed; + // w.ShowDialog(); + //} + + //private void EditAfterSaleOrderSku_Closed(object sender, EventArgs e) + //{ + // var w = sender as EditAfterSaleOrderSku; + // if (w.DialogResult != true) + // return; + // + // var afterSaleOrder = w.SaleOrder; + // IsLoading = true; + // Task.Factory.StartNew(() => afterOrderService.EditAfterSaleOrder(afterSaleOrder.Id, + // afterSaleOrder.OrderId, + // afterSaleOrder.ProductResult.Value, + // afterSaleOrder.ServiceResult.Value, + // afterSaleOrder.ProductHealth.Value, + // afterSaleOrder.ReissueAfterSaleAmount, + // afterSaleOrder.ReissueFreight, + // afterSaleOrder.ReissueProductAmount, + // afterSaleOrder.SDRefundFreight)).ContinueWith(t => + // { + // var response = t.Result; + // if (!response.Success) + // { + // IsLoading = false; + // App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "修改售后")); + // return; + // } + // RefreshAfterOrder(afterSaleOrder.Id); + // }); + //} + + //private void EditAfterSaleOrderRefundPurchaseAmount(AfterSaleOrder afterSaleOrder) + //{ + // var w = new EditAfterSaleOrderRefundPurchaseAmount(afterSaleOrder); + // w.Closed += EditAfterSaleOrderRefundPurchaseAmount_Closed; + // w.ShowDialog(); + //} + + //private void EditAfterSaleOrderRefundPurchaseAmount_Closed(object sender, EventArgs e) + //{ + // var w = sender as EditAfterSaleOrderRefundPurchaseAmount; + // if (w.DialogResult != true) + // return; + // + // var afterSaleOrder = w.SaleOrder; + // IsLoading = true; + // Task.Factory.StartNew(() => afterOrderService.EditAfterSaleOrderRefundPurchaseAmount(afterSaleOrder.Id, + // afterSaleOrder.OrderId, + // afterSaleOrder.RefundPurchaseAmount.Value, + // afterSaleOrder.RefundMerchantOrderNo, + // afterSaleOrder.RefundAlipayOrderNo)) + // .ContinueWith(t => + // { + // var response = t.Result; + // if (!response.Success) + // { + // IsLoading = false; + // App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "修改采购退款")); + // return; + // } + // RefreshAfterOrder(afterSaleOrder.Id); + // }); + //} + + //private void FindAfterSaleOrder(object param) + //{ + // var paramList = (object[])param; + // var orderId = paramList[0].ToString(); + // var skuId = paramList[1].ToString(); + // var startDate = DateTime.Parse(paramList[2].ToString()).Date; + // var endDate = DateTime.Now.Date; + // SetIncludeAfterOrder(orderId, skuId, startDate, endDate); + //} private void OpenSkuDetail(object param) { diff --git a/BBWY.Client/Views/Order/OrderList.xaml b/BBWY.Client/Views/Order/OrderList.xaml index e462e3ec..a1392a7e 100644 --- a/BBWY.Client/Views/Order/OrderList.xaml +++ b/BBWY.Client/Views/Order/OrderList.xaml @@ -86,10 +86,10 @@ - - + + + ConverterParameter=";false:&:#8080FF:#F2F2F2:6"> - + ConverterParameter=";false:&:White:#4A4A4A:6"> - @@ -216,7 +214,7 @@ - - + --> @@ -400,18 +398,18 @@ - + - + + + - @@ -598,7 +596,7 @@ - + --> + --> + --> + --> scrollviewer_OrderList.ScrollToTop()); }); - Messenger.Default.Register(this, "AfterSaleOrderList_ScrollToTop", (x) => - { - if (scrollveewer_AfterSaleOrderList == null) - scrollveewer_AfterSaleOrderList = listbox_afterSaleOrder.FindFirstVisualChild(); - scrollviewer_OrderList.Dispatcher.Invoke(() => scrollveewer_AfterSaleOrderList.ScrollToTop()); - }); + //Messenger.Default.Register(this, "AfterSaleOrderList_ScrollToTop", (x) => + //{ + // if (scrollveewer_AfterSaleOrderList == null) + // scrollveewer_AfterSaleOrderList = listbox_afterSaleOrder.FindFirstVisualChild(); + // scrollviewer_OrderList.Dispatcher.Invoke(() => scrollveewer_AfterSaleOrderList.ScrollToTop()); + //}); } private void OrderList_Unloaded(object sender, System.Windows.RoutedEventArgs e) diff --git a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs index 60205dbf..41f3c1ef 100644 --- a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs +++ b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs @@ -16,8 +16,11 @@ namespace BBWY.Client.Views.ServiceOrder { if (r) { - this.DialogResult = true; - this.Close(); + this.Dispatcher.Invoke(() => + { + this.DialogResult = true; + this.Close(); + }); } }); } diff --git a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml index edf443a2..961ad6ec 100644 --- a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml +++ b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml @@ -236,7 +236,7 @@ - + ().InnerJoin((s, osku) => s.OrderId == osku.OrderId && s.SkuId == osku.SkuId) - .Where((s, osku) => s.ShopId == request.ShopId) - .WhereIf(!string.IsNullOrEmpty(request.Sku), (s, osku) => s.SkuId == request.Sku) - .WhereIf(!string.IsNullOrEmpty(request.Spu), (s, osku) => s.ProductId == request.Spu) - .WhereIf(!string.IsNullOrEmpty(request.OrderId), (s, osku) => s.OrderId == request.OrderId) - .WhereIf(!string.IsNullOrEmpty(request.ServiceId), (s, osku) => s.ServiceId == request.ServiceId) - .WhereIf(request.ServiceOrderState != null, (s, osku) => s.Status == request.ServiceOrderState) - .WhereIf(request.ReturnDirection != null, (s, osku) => s.ReturnDirection == request.ReturnDirection) - .WhereIf(request.StartDate != null, (s, osku) => s.ApplyTime >= request.StartDate) - .WhereIf(request.EndDate != null, (s, osku) => s.ApplyTime <= request.EndDate) - .OrderByDescending((s, osku) => s.ApplyTime) + var list = fsql.Select() + .InnerJoin((s, o, osku) => s.OrderId == o.Id) + .InnerJoin((s, o, osku) => s.OrderId == osku.OrderId && s.SkuId == osku.SkuId) + .Where((s, o, osku) => s.ShopId == request.ShopId) + .WhereIf(!string.IsNullOrEmpty(request.Sku), (s, o, osku) => s.SkuId == request.Sku) + .WhereIf(!string.IsNullOrEmpty(request.Spu), (s, o, osku) => s.ProductId == request.Spu) + .WhereIf(!string.IsNullOrEmpty(request.OrderId), (s, o, osku) => s.OrderId == request.OrderId) + .WhereIf(!string.IsNullOrEmpty(request.ServiceId), (s, o, osku) => s.ServiceId == request.ServiceId) + .WhereIf(request.ServiceOrderState != null, (s, o, osku) => s.Status == request.ServiceOrderState) + .WhereIf(request.ReturnDirection != null, (s, o, osku) => s.ReturnDirection == request.ReturnDirection) + .WhereIf(request.StartDate != null, (s, o, osku) => s.ApplyTime >= request.StartDate) + .WhereIf(request.EndDate != null, (s, o, osku) => s.ApplyTime <= request.EndDate) + .OrderByDescending((s, o, osku) => s.ApplyTime) .Count(out var total) .Page(request.PageIndex, request.PageSize) - .ToList((s, osku) => new ServiceOrderItemResponse + .ToList((s, o, osku) => new ServiceOrderItemResponse { Id = s.Id, ApplyTime = s.ApplyTime, @@ -62,7 +65,9 @@ namespace BBWY.Server.Business ServiceOrderRemark = s.ServiceOrderRemark, StatusUpdateTime = s.StatusUpdateTime, PurchaseOrderId = s.PurchaseOrderId, - PurchasePlatform = s.PurchasePlatform + PurchasePlatform = s.PurchasePlatform, + + StorageType = o.StorageType }); return new ServiceOrderResponse() { diff --git a/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs b/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs index 46f57e0f..634bf12f 100644 --- a/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs +++ b/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs @@ -276,6 +276,10 @@ namespace BBWY.Server.Model.Dto public decimal Price { get; set; } #endregion + + #region Order + public Enums.StorageType? StorageType { get; set; } + #endregion } public class ServiceOrderResponse