From a19dacdc09c402f62e01a4a0546bf634dd119e98 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Mon, 27 Mar 2023 19:29:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=9C=8D=E5=8A=A1=E5=8D=95=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APIServices/ServiceOrderService.cs | 44 +++ .../ServiceOrder/ServiceOrderItemResponse.cs | 261 ++++++++++++++++++ BBWY.Client/Models/MappingProfile.cs | 1 + .../Models/ServiceOrder/ServiceOrder.cs | 2 +- .../ServiceOrder/ServiceOrderViewModel.cs | 99 ++++++- .../Views/ServiceOrder/ServiceOrderList.xaml | 189 ++++++++++++- .../Controllers/ServiceOrderController.cs | 2 +- .../ServiceOrder/ServiceOrderBusiness.cs | 4 +- .../ServiceOrder/ServiceOrderItemResponse.cs | 2 +- 9 files changed, 585 insertions(+), 19 deletions(-) create mode 100644 BBWY.Client/APIServices/ServiceOrderService.cs create mode 100644 BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs diff --git a/BBWY.Client/APIServices/ServiceOrderService.cs b/BBWY.Client/APIServices/ServiceOrderService.cs new file mode 100644 index 00000000..b4436205 --- /dev/null +++ b/BBWY.Client/APIServices/ServiceOrderService.cs @@ -0,0 +1,44 @@ +using BBWY.Client.Models; +using BBWY.Common.Http; +using BBWY.Common.Models; +using System; +using System.Net.Http; + +namespace BBWY.Client.APIServices +{ + public class ServiceOrderService : BaseApiService, IDenpendency + { + public ServiceOrderService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) + { + } + + public ApiResponse GetList(string orderId, + string sku, + string spu, + string serviceId, + string shopId, + ServiceOrderState? serviceOrderState, + ReturnDirection? returnDirection, + int pageIndex, + int pageSize, + DateTime? startDate, + DateTime? endDate) + { + return SendRequest(globalContext.BBYWApiHost, "Api/ServiceOrder/GetList", new + { + orderId, + sku, + spu, + serviceId, + shopId, + serviceOrderState, + returnDirection, + pageIndex, + pageSize, + startDate, + endDate + }, null, HttpMethod.Post); + } + } + +} \ No newline at end of file diff --git a/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs b/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs new file mode 100644 index 00000000..1c46b57d --- /dev/null +++ b/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs @@ -0,0 +1,261 @@ +using System; +using System.Collections.Generic; + +namespace BBWY.Client.Models +{ + public class ServiceOrderItemResponse + { + public long Id { get; set; } + + /// + /// 售后成本(不含退款采购成本) + /// + public decimal? AfterTotalCost { get; set; } = 0.00M; + + /// + /// 申请时间 + /// + public DateTime? ApplyTime { get; set; } + + /// + /// 耗材费 + /// + public decimal? ConsumableAmount { get; set; } = 0.00M; + + public DateTime? CreateTime { get; set; } + + /// + /// 发货快递费 + /// + public decimal? DeliveryExpressFreight { get; set; } = 0.00M; + + /// + /// 头程费 + /// + public decimal? FirstFreight { get; set; } = 0.00M; + + /// + /// 退货拍摄图(名称) + /// + public string ImageName { get; set; } + + /// + /// 入仓操作费 + /// + public decimal? InStorageAmount { get; set; } = 0.00M; + + /// + /// 是否订阅快递100 + /// + + public bool? IsSubscribeKuaiDi100 { get; set; } + + /// + /// 是否需要订阅快递100 + /// + public bool? IsNeedSubscribeKuaiDi100 { get; set; } + + public string OrderId { get; set; } + + /// + /// 出仓操作费 + /// + public decimal? OutStorageAmount { get; set; } = 0.00M; + + /// + /// 产品外观 (严重损=0 轻微损=1 新=2) + /// + + public ProductAppearance? ProductAppearance { get; set; } + + /// + /// 产品功能 (坏=0 好=1) + /// + + public ProductFunction? ProductFunction { get; set; } + + /// + /// 商品健康状态 (残次品=0 良品=1) + /// + + public NewProductHealth? ProductHealth { get; set; } + + public string ProductId { get; set; } + + /// + /// 产品包装(无=0 非新=1 新=2) + /// + + public ProductPackage? ProductPackage { get; set; } + + + /// + /// 采购方式 + /// + + public PurchaseMethod? PurchaseMethod { get; set; } + + /// + /// 采购单号 + /// + public string PurchaseOrderId { get; set; } + + /// + /// 采购单主键 + /// + + public long? PurchaseOrderPKId { get; set; } + + /// + /// 采购平台 + /// + + public Platform? PurchasePlatform { get; set; } + + /// + /// 退款支付宝订单号 + /// + public string RefundAlipayOrderNo { get; set; } + + /// + /// 退款金额 + /// + public decimal? RefundAmount { get; set; } = 0.00M; + + /// + /// 退货入仓操作费 + /// + public decimal? RefundInStorageAmount { get; set; } = 0.00M; + + /// + /// 退款商户订单号 + /// + public string RefundMerchantOrderNo { get; set; } + + /// + /// 退款采购成本 + /// + public decimal? RefundPurchaseAmount { get; set; } = 0.00M; + + /// + /// 退款时间 + /// + public DateTime? RefundTime { get; set; } + + /// + /// 售后补发成本 + /// + public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M; + + /// + /// 补发快递费 + /// + public decimal? ReissueFreight { get; set; } = 0.00M; + + /// + /// 补发货款成本 + /// + public decimal? ReissueProductAmount { get; set; } = 0.00M; + + /// + /// 退货去向(退货仓=0,采购商=1,原返=2,无退货=3) + /// + + public ReturnDirection? ReturnDirection { get; set; } + + /// + /// SD退货运费 + /// + public decimal? SDRefundFreight { get; set; } = 0.00M; + + /// + /// 服务单号 + /// + public string ServiceId { get; set; } + + /// + /// 服务单租备注 + /// + public string ServiceOrderRemark { get; set; } + + /// + /// 服务单处理结果 + /// + + public ServiceResult? ServiceResult { get; set; } + + public string ShopId { get; set; } + + public string SkuId { get; set; } + + /// + /// SKU销售件数 + /// + + public int? SkuItemCount { get; set; } + + /// + /// 服务单状态 待收货 = 10005,取消 = 10011,完成 = 10010 + /// + + public ServiceOrderState? Status { get; set; } + + /// + /// 变更时间 + /// + public DateTime? StatusUpdateTime { get; set; } + + /// + /// 仓储费 + /// + public decimal? StorageAmount { get; set; } = 0.00M; + + /// + /// 服务单物流状态(0=待质检,1=已入库,2=派送中,3=运输中) + /// + + public TransportState? TransportDetails { get; set; } + + /// + /// 仓库组备注 + /// + public string WareHouseGrounpRemark { get; set; } + + + /// + /// 快递单号 + /// + public string WayBillNo { get; set; } + + /// + /// 快递公司名称 + /// + public string ExpressName { get; set; } + + /// + /// 质检入库时间 + /// + public DateTime? QualityInspectionInStoreTime { get; set; } + + #region Sku + public string Logo { get; set; } + + public string Title { get; set; } + + //public string ContactName { get; set; } + + //public string Mobile { get; set; } + + public int ItemTotal { get; set; } + + public decimal Price { get; set; } + #endregion + } + + public class ServiceOrderResponse + { + public IList Items { get; set; } + + public long Count { get; set; } + } +} diff --git a/BBWY.Client/Models/MappingProfile.cs b/BBWY.Client/Models/MappingProfile.cs index 865a7a5d..8ff89753 100644 --- a/BBWY.Client/Models/MappingProfile.cs +++ b/BBWY.Client/Models/MappingProfile.cs @@ -30,6 +30,7 @@ namespace BBWY.Client.Models CreateMap(); CreateMap(); CreateMap(); + CreateMap(); } } } diff --git a/BBWY.Client/Models/ServiceOrder/ServiceOrder.cs b/BBWY.Client/Models/ServiceOrder/ServiceOrder.cs index 3a829f7d..fb57526c 100644 --- a/BBWY.Client/Models/ServiceOrder/ServiceOrder.cs +++ b/BBWY.Client/Models/ServiceOrder/ServiceOrder.cs @@ -1,6 +1,6 @@ namespace BBWY.Client.Models { - public class ServiceOrder + public class ServiceOrder : ServiceOrderItemResponse { } } diff --git a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs index 0c366cc3..ceba8ede 100644 --- a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs +++ b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs @@ -1,9 +1,13 @@ -using BBWY.Client.Models; +using BBWY.Client.APIServices; +using BBWY.Client.Models; +using BBWY.Common.Extensions; using BBWY.Common.Models; using GalaSoft.MvvmLight.Command; using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; using System.Windows; using System.Windows.Input; @@ -11,12 +15,20 @@ namespace BBWY.Client.ViewModels { public class ServiceOrderViewModel : BaseVM, IDenpendency { + private ServiceOrderService serviceOrderService; + private bool isLoading; private ServiceOrderState? serviceOrderState; private ReturnDirection? returnDirection; - private int serviceOrderCount; + private long serviceOrderCount; private int pageIndex; private int pageSize; + private string orderId; + private string spu; + private string sku; + private string serviceId; + private DateTime? startDate; + private DateTime? endDate; public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } @@ -31,32 +43,111 @@ namespace BBWY.Client.ViewModels public ICommand CopyTextCommand { get; set; } + public ICommand SetSearchDateCommand { get; set; } + + public ICommand SearchServiceOrderCommand { get; set; } + public IList ServiceOrderList { get; set; } - public int ServiceOrderCount { get => serviceOrderCount; set { Set(ref serviceOrderCount, value); } } + public long ServiceOrderCount { get => serviceOrderCount; set { Set(ref serviceOrderCount, value); } } public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } } public int PageSize { get => pageSize; set { Set(ref pageSize, value); } } - public ServiceOrderViewModel() + public string OrderId { get => orderId; set { Set(ref orderId, value); } } + + public string Spu { get => spu; set { Set(ref spu, value); } } + + public string Sku { get => sku; set { Set(ref sku, value); } } + + public string ServiceId { get => serviceId; set { Set(ref serviceId, value); } } + + public DateTime? StartDate { get => startDate; set { Set(ref startDate, value); } } + + public DateTime? EndDate { get => endDate; set { Set(ref endDate, value); } } + + public GlobalContext GlobalContext { get; set; } + + public ServiceOrderViewModel(ServiceOrderService serviceOrderService, GlobalContext globalContext) { + this.serviceOrderService = serviceOrderService; SetServiceOrderStateCommand = new RelayCommand(SetServiceOrderState); SetReturnDirectionCommand = new RelayCommand(SetReturnDirection); CopyTextCommand = new RelayCommand(s => { try { Clipboard.SetText(s); } catch (Exception ex) { } }); + SetSearchDateCommand = new RelayCommand(SetSearchDate); + SearchServiceOrderCommand = new RelayCommand(SearchServiceOrder); ServiceOrderList = new ObservableCollection() { new ServiceOrder(), new ServiceOrder(), new ServiceOrder() }; + PageSize = 10; + GlobalContext = globalContext; + EndDate = DateTime.Now.Date; + StartDate = DateTime.Now.Date.AddDays(-15); + SearchServiceOrder(); + } + + private void SearchServiceOrder() + { + PageIndex = 1; + Task.Factory.StartNew(() => QueryServiceOrder(PageIndex)); + } + + private void SetSearchDate(int d) + { + EndDate = d == 1 ? DateTime.Now.Date.AddDays(-1) : DateTime.Now; + StartDate = DateTime.Now.Date.AddDays(d * -1); + SearchServiceOrder(); } private void SetServiceOrderState(ServiceOrderState? state) { this.ServiceOrderState = state; //query + SearchServiceOrder(); } private void SetReturnDirection(ReturnDirection? returnDirection) { this.ReturnDirection = returnDirection; //query + SearchServiceOrder(); + } + + private void QueryServiceOrder(int pageIndex) + { + IsLoading = true; + App.Current.Dispatcher.Invoke(() => + { + this.ServiceOrderList.Clear(); + ServiceOrderCount = 0; + }); + var response = serviceOrderService.GetList(OrderId, Sku, Spu, ServiceId, GlobalContext.User.Shop.ShopId.ToString(), ServiceOrderState, ReturnDirection, pageIndex, PageSize, StartDate, EndDate); + if (!response.Success) + { + IsLoading = false; + App.Current.Dispatcher.Invoke(() => + { + MessageBox.Show(response.Msg, "提示"); + return; + }); + } + if (response.Data.Items == null || response.Data.Items.Count() == 0) + { + IsLoading = false; + return; + } + + IsLoading = false; + ServiceOrderCount = response.Data.Count; + var list = response.Data.Items.Map>(); + + App.Current.Dispatcher.Invoke(() => + { + foreach (var s in list) + { + //转换ImageName + ServiceOrderList.Add(s); + } + }); } } } diff --git a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml index 06d8eaf2..3129a6f3 100644 --- a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml +++ b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml @@ -110,7 +110,7 @@ -