diff --git a/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs b/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs index 50837c5d..10bf31a6 100644 --- a/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/ServiceOrder/ServiceOrderItemResponse.cs @@ -238,6 +238,31 @@ namespace BBWY.Client.Models /// public DateTime? QualityInspectionInStoreTime { get; set; } + /// + /// 换新单号 + /// + public string RenewalOrderId { get; set; } + + /// + /// 退货检查备注 + /// + public string ReturnCheckRemark { get; set; } + + /// + /// 线下换新方式 + /// + public StorageType? RenewalType { get; set; } + + /// + /// 线下换新采购单号 + /// + public string RenewalPurchaseOrderId { get; set; } + + /// + /// 线下换新采购平台 + /// + public Platform? RenewalPurchasePlatform { get; set; } + #region Sku public string Logo { get; set; } diff --git a/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs b/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs index 6407a6d5..7778721a 100644 --- a/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs +++ b/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs @@ -1,17 +1,79 @@ using BBWY.Client.Models; +using GalaSoft.MvvmLight.Command; +using System.Windows.Input; namespace BBWY.Client.ViewModels { - public class EditServiceOrderViewModel: BaseVM + public class EditServiceOrderViewModel : BaseVM { + /// + /// 主键Id + /// + private long servicePId; + private ServiceResult? serviceResult; + private decimal? sdRefundFreight; + private ReturnDirection? returnDirection; + private string renewalOrderId; + private decimal? reissueAfterSaleAmount; + private string returnCheckRemark; + private StorageType? renewalType; + private string renewalPurchaseOrderId; + private Platform? renewalPurchasePlatform; + private decimal? reissueFreight; + private decimal? reissueProductAmount; + + public ServiceResult? ServiceResult { get => serviceResult; set { Set(ref serviceResult, value); } } + public decimal? SDRefundFreight { get => sdRefundFreight; set { Set(ref sdRefundFreight, value); } } + public ReturnDirection? ReturnDirection { get => returnDirection; set { Set(ref returnDirection, value); } } + public string RenewalOrderId { get => renewalOrderId; set { Set(ref renewalOrderId, value); } } + + /// + /// 售后补发成本 + /// + public decimal? ReissueAfterSaleAmount { get => reissueAfterSaleAmount; set { Set(ref reissueAfterSaleAmount, value); } } + + /// + /// 退货检查备注 + /// + public string ReturnCheckRemark { get => returnCheckRemark; set { Set(ref returnCheckRemark, value); } } + + public StorageType? RenewalType { get => renewalType; set { Set(ref renewalType, value); } } + + public string RenewalPurchaseOrderId { get => renewalPurchaseOrderId; set { Set(ref renewalPurchaseOrderId, value); } } + + 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() { - + SaveCommand = new RelayCommand(Save); } public void SetData(ServiceOrder serviceOrder) { + this.servicePId = serviceOrder.Id; + this.ServiceResult = serviceOrder.ServiceResult; + this.SDRefundFreight = serviceOrder.SDRefundFreight; + this.ReturnDirection = serviceOrder.ReturnDirection; + this.RenewalOrderId = serviceOrder.RenewalOrderId; + this.ReissueAfterSaleAmount = serviceOrder.ReissueAfterSaleAmount; + this.ReturnCheckRemark = serviceOrder.ReturnCheckRemark; + this.RenewalType = serviceOrder.RenewalType; + this.RenewalPurchaseOrderId = serviceOrder.RenewalPurchaseOrderId; + this.RenewalPurchasePlatform = serviceOrder.RenewalPurchasePlatform; + this.ReissueFreight = serviceOrder.ReissueFreight; + this.ReissueProductAmount = serviceOrder.ReissueProductAmount; + } + + private void Save() + { + + //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 875a298a..d83e2fac 100644 --- a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs +++ b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs @@ -1,6 +1,7 @@ using BBWY.Client.APIServices; using BBWY.Client.Helpers; using BBWY.Client.Models; +using BBWY.Client.Views.ServiceOrder; using BBWY.Common.Extensions; using BBWY.Common.Http; using BBWY.Common.Models; @@ -57,6 +58,8 @@ namespace BBWY.Client.ViewModels public ICommand PreviewImgCommand { get; set; } + public ICommand EditServiceOrderCommand { get; set; } + public IList ServiceOrderList { get; set; } public long ServiceOrderCount { get => serviceOrderCount; set { Set(ref serviceOrderCount, value); } } @@ -91,6 +94,7 @@ namespace BBWY.Client.ViewModels NavigateToDetailCommand = new RelayCommand(NavigateToDetail); OnPageIndexChangedCommand = new RelayCommand(OnPageIndexChanged); PreviewImgCommand = new RelayCommand(PreviewImg); + EditServiceOrderCommand = new RelayCommand(OpenEditServiceOrder); ServiceOrderList = new ObservableCollection() { new ServiceOrder(), new ServiceOrder(), new ServiceOrder() }; PageSize = 10; GlobalContext = globalContext; @@ -159,7 +163,7 @@ namespace BBWY.Client.ViewModels { s.ProductPackage = ProductPackage.新; s.ImageName = "20230317071208762563,8d58b491-7859-4187-9f43-4fd177a0f25f,b0df0763-9cf4-40ca-a1fc-57695e4b8d33"; } - + s.Init(); #endregion @@ -206,7 +210,7 @@ namespace BBWY.Client.ViewModels return; } CallWindowsPhoto(localPath); - }; + }; Task.Factory.StartNew(() => downloader.DownloadFile(fullUrl, Path.GetTempPath(), fileName, null)); } else @@ -241,5 +245,15 @@ namespace BBWY.Client.ViewModels App.Current.Dispatcher.Invoke(() => MessageBox.Show($"打开照片查看器失败 {ex.Message}")); } } + + private void OpenEditServiceOrder(ServiceOrder serviceOrder) + { + var w = new EditServiceOrder(serviceOrder); + var r = w.ShowDialog(); + if (r == true) + { + //Refresh ServiceOrder + } + } } } diff --git a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml index bdf5ff17..92078f87 100644 --- a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml +++ b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml @@ -5,12 +5,175 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BBWY.Client.Views.ServiceOrder" mc:Ignorable="d" + xmlns:clientModel="clr-namespace:BBWY.Client.Models" xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" + xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" Style="{StaticResource bwstyle}" DataContext="{Binding EditServiceOrder,Source={StaticResource Locator}}" Title="EditServiceOrder" Height="450" Width="340"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs index e32e4045..60205dbf 100644 --- a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs +++ b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml.cs @@ -1,6 +1,5 @@ using BBWY.Client.ViewModels; using BBWY.Controls; -using System.Windows; namespace BBWY.Client.Views.ServiceOrder { @@ -13,6 +12,14 @@ namespace BBWY.Client.Views.ServiceOrder { InitializeComponent(); (this.DataContext as EditServiceOrderViewModel).SetData(serviceOrder); + GalaSoft.MvvmLight.Messaging.Messenger.Default.Register(this, "closeEditServiceOrder", (r) => + { + if (r) + { + this.DialogResult = true; + this.Close(); + } + }); } } } diff --git a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml index c99e8315..edf443a2 100644 --- a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml +++ b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml @@ -316,12 +316,12 @@ Background="Transparent" Foreground="{StaticResource Text.Color}" Grid.Column="1" - Command="{Binding DataContext.EditAfterSaleOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" + Command="{Binding DataContext.EditServiceOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/> - @@ -397,22 +397,22 @@ + Visibility="{Binding RenewalPurchaseOrderId,ConverterParameter=#null:Collapsed:Visible,Converter={StaticResource objConverter}}"> - + - + CommandParameter="{Binding RenewalPurchaseOrderId}" Margin="3,0,0,0"/> - + @@ -421,6 +421,14 @@ + + diff --git a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs index b416ff02..55518038 100644 --- a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs +++ b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs @@ -152,7 +152,8 @@ namespace BBWY.Server.Business if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.维修 || dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.商品补发 || dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.线下换新) - { if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.商品补发) + { + if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.商品补发) dbAfterSaleOrder.ProductHealth = Model.Enums.ProductHealth.客户无退货; dbAfterSaleOrder.ReissueProductAmount = editAfterSaleOrderRequest.ReissueProductAmount; diff --git a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs index 3030977d..2bc6ff3d 100644 --- a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs +++ b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs @@ -50,6 +50,8 @@ namespace BBWY.Server.Business Status = s.Status, ServiceId = s.ServiceId, ShopId = s.ShopId, + RenewalOrderId = s.RenewalOrderId, + ReturnCheckRemark = s.ReturnCheckRemark, Title = osku.Title, ItemTotal = osku.ItemTotal.Value, diff --git a/BBWY.Server.Model/Db/Order/Serviceorder.cs b/BBWY.Server.Model/Db/Order/Serviceorder.cs index d3136bc7..97dc72bd 100644 --- a/BBWY.Server.Model/Db/Order/Serviceorder.cs +++ b/BBWY.Server.Model/Db/Order/Serviceorder.cs @@ -283,6 +283,36 @@ namespace BBWY.Server.Model.Db /// [Column(DbType = "datetime")] public DateTime? QualityInspectionInStoreTime { get; set; } + + /// + /// 换新单号 + /// + [Column(StringLength = 100)] + public string RenewalOrderId { get; set; } + + /// + /// 退货检查备注 + /// + [Column(StringLength = 255)] + public string ReturnCheckRemark { get; set; } + + /// + /// 线下换新方式 + /// + [Column(MapType = typeof(int?))] + public Enums.StorageType? RenewalType { get; set; } + + /// + /// 线下换新采购单号 + /// + [Column(StringLength = 50)] + public string RenewalPurchaseOrderId { get; set; } + + /// + /// 线下换新采购平台 + /// + [Column(MapType = typeof(int?))] + public Enums.Platform? RenewalPurchasePlatform { get; set; } } } diff --git a/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs b/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs index b7ff8ec3..46f57e0f 100644 --- a/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs +++ b/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs @@ -238,6 +238,31 @@ namespace BBWY.Server.Model.Dto /// public DateTime? QualityInspectionInStoreTime { get; set; } + /// + /// 换新单号 + /// + public string RenewalOrderId { get; set; } + + /// + /// 退货检查备注 + /// + public string ReturnCheckRemark { get; set; } + + /// + /// 线下换新方式 + /// + public Enums.StorageType? RenewalType { get; set; } + + /// + /// 线下换新采购单号 + /// + public string RenewalPurchaseOrderId { get; set; } + + /// + /// 线下换新采购平台 + /// + public Enums.Platform? RenewalPurchasePlatform { get; set; } + #region Sku public string Logo { get; set; } diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index 65a23421..d89d7415 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -60,64 +60,7 @@ namespace BBWY.Test var jdClient = GetJdClient(appkey, appSecret); - //var req = new AdsIbgUniversalJosServiceAdQueryRequest(); - //req.accessPin = "可比玩具"; - //req.businessType = "2"; - //req.isDaily = "true"; - //req.clickOrOrderDay = "0"; - //req.pageSize = "100"; - //req.page = "1"; - //req.clickOrOrderCaliber = "1"; - //req.startDay = "2023-03-10"; - //req.endDay = "2023-03-10"; - //req.giftFlag = "0"; - //req.orderStatusCategory = "1"; - //var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); - - /* - var req = new AscSyncListRequest(); - - req.buId = "10598776"; - req.operatePin = "开发者测试"; - req.operateNick = "开发者测试"; - - //req.serviceId = 1687549909; - //req.orderId = ; - //req.serviceStatus = ; - - req.updateTimeBegin = DateTime.Parse("2023-03-01"); - req.updateTimeEnd = DateTime.Now; - - //req.freightUpdateDateBegin = ; - //req.freightUpdateDateEnd = ; - - req.pageNumber = "1"; - req.pageSize = "100"; - var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); - */ - - //var req = new AscQueryViewRequest(); - - //req.buId = "10598776"; - //req.operatePin = "开发测试"; - //req.operateNick = "开发测试"; - //req.serviceId = 1688379598; - //req.orderId = 262837096353; - - - - //var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); - - ////var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); - - //Console.WriteLine(JsonConvert.SerializeObject(res)); - - var tdeClient = new TDEClient("https://api.jd.com/routerjson", appkey, appSecret, token); - var returnWareAddress = "AATLKmlcVOJfnbZ2x4ekuBoGLTpp/eAJf9RDWWhUXsW4hRWT22+CAAuo7e08va+2KKQxGosPRWQ5t56PDp060VetknlcczPyKlymVNCdNRH2ew=="; - var pickwareAddress = "AATLKmlcVOJfnbZ2x4ekuBoGSURp5cw04y0gSLeBBy/BLvilFS91R6ASk3Ft2GokuD4YtgjX4hQC8XwsEschrw9DBJQWaFUaacMYA/GyHhlpkw=="; - Console.WriteLine($"returnWareAddress {tdeClient.DecryptString(returnWareAddress)}"); - Console.WriteLine($"pickwareAddress {tdeClient.DecryptString(pickwareAddress)}"); Console.ReadKey(); } diff --git a/JD.API/Controllers/PlatformSDKController.cs b/JD.API/Controllers/PlatformSDKController.cs index 6e52da0a..3e49f5f9 100644 --- a/JD.API/Controllers/PlatformSDKController.cs +++ b/JD.API/Controllers/PlatformSDKController.cs @@ -288,6 +288,7 @@ namespace JD.API.API.Controllers return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).StartJDPromotionTask(request); } + [HttpPost] public void StartJDPromotionDelayTask([FromBody] StartPromotionTaskDelayRequest request) { platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).StartJDPromotionDelayTask(request); @@ -340,7 +341,7 @@ namespace JD.API.API.Controllers /// /// [HttpPost] - public JArray GetServiceOrderList([FromBody] ClientQueryServiceOrderRequest request) + public JArray GetServiceOrderList([FromBody] QueryServiceOrderRequest request) { return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetServiceOrderList(request); } @@ -351,7 +352,7 @@ namespace JD.API.API.Controllers /// /// [HttpPost] - public JToken GetServiceOrderDetail(QueryServiceOrderDetailRequest request) + public JToken GetServiceOrderDetail([FromBody] QueryServiceOrderDetailRequest request) { return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetServiceOrderDetail(request); } @@ -362,7 +363,7 @@ namespace JD.API.API.Controllers /// /// [HttpPost] - public JToken GetServiceOrderDeliveryDetail(QueryServiceOrderDetailRequest request) + public JToken GetServiceOrderDeliveryDetail([FromBody] QueryServiceOrderDetailRequest request) { return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetServiceOrderDeliveryDetail(request); } diff --git a/JD.API/appsettings.json b/JD.API/appsettings.json index 746b7356..d3a0a141 100644 --- a/JD.API/appsettings.json +++ b/JD.API/appsettings.json @@ -9,7 +9,7 @@ "ConnectionStrings": { "DB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy_test;charset=utf8;sslmode=none;", }, - "IsEnableSwagger": false, + "IsEnableSwagger": true, "AllowedHosts": "*", "ValidatePlatformKey": 1 }