From da4064d5cbe646eb49df85792407e4dace3a4d64 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Mon, 27 Mar 2023 15:45:01 +0800
Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E6=9C=8D=E5=8A=A1=E5=8D=95=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=202.=E5=BF=AB=E9=80=92100=E6=8E=A8?=
=?UTF-8?q?=E9=80=81=E6=9B=B4=E6=96=B0UpdateTime?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWY.Client/Models/Enums.cs | 58 +-
.../Models/ServiceOrder/ServiceOrder.cs | 6 +
BBWY.Client/ViewModels/MainViewModel.cs | 3 +-
.../ServiceOrder/ServiceOrderViewModel.cs | 62 ++
BBWY.Client/ViewModels/ViewModelLocator.cs | 35 +-
BBWY.Client/Views/Order/OrderList.xaml | 916 +-----------------
.../Views/ServiceOrder/ServiceOrderList.xaml | 266 +++++
.../ServiceOrder/ServiceOrderList.xaml.cs | 26 +
.../Controllers/ServiceOrderController.cs | 28 +
.../BBWY.Server.Business.csproj | 6 -
.../PlatformSDK/PlatformSDKBusiness.cs | 2 +-
.../ServiceOrder/ServiceOrderBusiness.cs | 72 ++
.../Sync/JD/JDServiceOrderSyncBusiness.cs | 23 +-
BBWY.Server.Model/Db/Order/ExpressOrder.cs | 4 +-
BBWY.Server.Model/Db/Order/Serviceorder.cs | 556 ++++++-----
.../ClientQueryServiceOrderRequest.cs | 30 +
.../ServiceOrder/ServiceOrderItemResponse.cs | 263 +++++
BBWY.Server.Model/Enums.cs | 58 +-
JD.API/Controllers/PlatformSDKController.cs | 2 +-
19 files changed, 1179 insertions(+), 1237 deletions(-)
create mode 100644 BBWY.Client/Models/ServiceOrder/ServiceOrder.cs
create mode 100644 BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs
create mode 100644 BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml
create mode 100644 BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml.cs
create mode 100644 BBWY.Server.API/Controllers/ServiceOrderController.cs
create mode 100644 BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs
create mode 100644 BBWY.Server.Model/Dto/Request/ServiceOrder/ClientQueryServiceOrderRequest.cs
create mode 100644 BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs
diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs
index c70614d1..be2e2fc9 100644
--- a/BBWY.Client/Models/Enums.cs
+++ b/BBWY.Client/Models/Enums.cs
@@ -254,7 +254,7 @@
{
外部包装 = 0,
产品包装 = 1,
- 无 =2
+ 无 = 2
}
public enum Increment
@@ -331,4 +331,60 @@
}
+ ///
+ /// 服务单状态
+ ///
+ public enum ServiceOrderState
+ {
+ 待收货 = 10005,
+ 已取消 = 10011,
+ 已完成 = 10010
+ }
+
+ public enum ReturnDirection
+ {
+ 退货仓 = 0, 采购商 = 1, 原返 = 2, 无退货 = 3
+ }
+
+
+ ///
+ /// 运输状态 0=待质检,1=已入库,2=派送中,3=运输中
+ ///
+ public enum TransportState
+ {
+ 待质检 = 0, 已入库 = 1, 派送中 = 2, 运输中 = 3
+ }
+
+ ///
+ /// 商品健康状态 残次品=0 良品=1
+ ///
+ public enum NewProductHealth
+ {
+ 残次品 = 0, 良品 = 1
+ }
+
+ ///
+ /// 产品功能 坏=0 好=1
+ ///
+ public enum ProductFunction
+ {
+ 坏 = 0, 好 = 1
+ }
+
+ ///
+ /// 产品外观 (严重损=0 轻微损=1 新=2)
+ ///
+ public enum ProductAppearance
+ {
+ 严重损 = 0, 轻微损 = 1, 新 = 2
+ }
+
+ ///
+ /// 产品包装(无=0 非新=1 新=2)
+ ///
+ public enum ProductPackage
+ {
+ 无 = 0, 非新 = 1, 新 = 2
+ }
+
}
diff --git a/BBWY.Client/Models/ServiceOrder/ServiceOrder.cs b/BBWY.Client/Models/ServiceOrder/ServiceOrder.cs
new file mode 100644
index 00000000..3a829f7d
--- /dev/null
+++ b/BBWY.Client/Models/ServiceOrder/ServiceOrder.cs
@@ -0,0 +1,6 @@
+namespace BBWY.Client.Models
+{
+ public class ServiceOrder
+ {
+ }
+}
diff --git a/BBWY.Client/ViewModels/MainViewModel.cs b/BBWY.Client/ViewModels/MainViewModel.cs
index 7e22b80b..70c07d25 100644
--- a/BBWY.Client/ViewModels/MainViewModel.cs
+++ b/BBWY.Client/ViewModels/MainViewModel.cs
@@ -158,7 +158,8 @@ namespace BBWY.Client.ViewModels
Name = "订单管理",
ChildList = new List()
{
- new MenuModel(){ Name="最近订单",Url="/Views/Order/OrderList.xaml" }
+ new MenuModel(){ Name="最近订单",Url="/Views/Order/OrderList.xaml" },
+ new MenuModel(){ Name="服务单管理",Url="/Views/ServiceOrder/ServiceOrderList.xaml" }
}
});
diff --git a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs
new file mode 100644
index 00000000..0c366cc3
--- /dev/null
+++ b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs
@@ -0,0 +1,62 @@
+using BBWY.Client.Models;
+using BBWY.Common.Models;
+using GalaSoft.MvvmLight.Command;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Windows;
+using System.Windows.Input;
+
+namespace BBWY.Client.ViewModels
+{
+ public class ServiceOrderViewModel : BaseVM, IDenpendency
+ {
+ private bool isLoading;
+ private ServiceOrderState? serviceOrderState;
+ private ReturnDirection? returnDirection;
+ private int serviceOrderCount;
+ private int pageIndex;
+ private int pageSize;
+
+ public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
+
+ public ServiceOrderState? ServiceOrderState { get => serviceOrderState; set { Set(ref serviceOrderState, value); } }
+
+ public ReturnDirection? ReturnDirection { get => returnDirection; set { Set(ref returnDirection, value); } }
+
+
+ public ICommand SetServiceOrderStateCommand { get; set; }
+ public ICommand SetReturnDirectionCommand { get; set; }
+ public ICommand OnPageIndexChangedCommand { get; set; }
+
+ public ICommand CopyTextCommand { get; set; }
+
+ public IList ServiceOrderList { get; set; }
+
+ public int 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()
+ {
+ SetServiceOrderStateCommand = new RelayCommand(SetServiceOrderState);
+ SetReturnDirectionCommand = new RelayCommand(SetReturnDirection);
+ CopyTextCommand = new RelayCommand(s => { try { Clipboard.SetText(s); } catch (Exception ex) { } });
+ ServiceOrderList = new ObservableCollection() { new ServiceOrder(), new ServiceOrder(), new ServiceOrder() };
+ }
+
+ private void SetServiceOrderState(ServiceOrderState? state)
+ {
+ this.ServiceOrderState = state;
+ //query
+ }
+
+ private void SetReturnDirection(ReturnDirection? returnDirection)
+ {
+ this.ReturnDirection = returnDirection;
+ //query
+ }
+ }
+}
diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs
index 0b9d7e8c..1ac7e52f 100644
--- a/BBWY.Client/ViewModels/ViewModelLocator.cs
+++ b/BBWY.Client/ViewModels/ViewModelLocator.cs
@@ -39,21 +39,6 @@ namespace BBWY.Client.ViewModels
//}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
public MainViewModel Main
{
get
@@ -111,6 +96,18 @@ namespace BBWY.Client.ViewModels
}
}
}
+
+ public ServiceOrderViewModel ServiceOrderList
+ {
+ get
+ {
+ using (var s = sp.CreateScope())
+ {
+ return s.ServiceProvider.GetRequiredService();
+ }
+ }
+ }
+
public ConsumableViewModel Consumable
{
get
@@ -196,14 +193,14 @@ namespace BBWY.Client.ViewModels
get
{
- // return sp.GetRequiredService();
+ // return sp.GetRequiredService();
using (var s = sp.CreateScope())
{
//if (viewModel == null)
// viewModel = s.ServiceProvider.GetRequiredService();
-
-
+
+
var viewModel = s.ServiceProvider.GetRequiredService();
@@ -213,7 +210,7 @@ namespace BBWY.Client.ViewModels
}
}
}
-
+
public ChoosePurchaseSchemeViewModel ChoosePurchaseScheme
{
diff --git a/BBWY.Client/Views/Order/OrderList.xaml b/BBWY.Client/Views/Order/OrderList.xaml
index 53017b49..e462e3ec 100644
--- a/BBWY.Client/Views/Order/OrderList.xaml
+++ b/BBWY.Client/Views/Order/OrderList.xaml
@@ -409,913 +409,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
diff --git a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml
new file mode 100644
index 00000000..06d8eaf2
--- /dev/null
+++ b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml
@@ -0,0 +1,266 @@
+
+
+
+ 0
+ 1
+ 2
+ 6
+ 14
+ 29
+
+ 10005
+ 10010
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml.cs b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml.cs
new file mode 100644
index 00000000..e750c5a8
--- /dev/null
+++ b/BBWY.Client/Views/ServiceOrder/ServiceOrderList.xaml.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace BBWY.Client.Views.ServiceOrder
+{
+ ///
+ /// ServiceOrderList.xaml 的交互逻辑
+ ///
+ public partial class ServiceOrderList : Page
+ {
+ public ServiceOrderList()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/BBWY.Server.API/Controllers/ServiceOrderController.cs b/BBWY.Server.API/Controllers/ServiceOrderController.cs
new file mode 100644
index 00000000..c350aec6
--- /dev/null
+++ b/BBWY.Server.API/Controllers/ServiceOrderController.cs
@@ -0,0 +1,28 @@
+using BBWY.Server.Business;
+using BBWY.Server.Model.Dto;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+
+namespace BBWY.Server.API.Controllers
+{
+
+ public class ServiceOrderController : BaseApiController
+ {
+ private ServiceOrderBusiness serviceOrderBusiness { get; set; }
+ public ServiceOrderController(IHttpContextAccessor httpContextAccessor, ServiceOrderBusiness serviceOrderBusiness) : base(httpContextAccessor)
+ {
+ this.serviceOrderBusiness = serviceOrderBusiness;
+ }
+
+ ///
+ /// 查询服务单
+ ///
+ ///
+ ///
+ [HttpPost]
+ public ServicOrderResponse GetList([FromBody] ClientQueryServiceOrderRequest request)
+ {
+ return serviceOrderBusiness.GetList(request);
+ }
+ }
+}
diff --git a/BBWY.Server.Business/BBWY.Server.Business.csproj b/BBWY.Server.Business/BBWY.Server.Business.csproj
index 842fec8b..2fbbac4b 100644
--- a/BBWY.Server.Business/BBWY.Server.Business.csproj
+++ b/BBWY.Server.Business/BBWY.Server.Business.csproj
@@ -5,12 +5,6 @@
True
-
-
-
-
-
-
diff --git a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
index 98916e41..a20fb6d6 100644
--- a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
+++ b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
@@ -188,7 +188,7 @@ namespace BBWY.Server.Business
throw new NotImplementedException();
}
- public virtual JArray GetServiceOrderList(Model.Dto.QueryServiceOrderRequest request)
+ public virtual JArray GetServiceOrderList(QueryServiceOrderRequest request)
{
throw new NotImplementedException();
}
diff --git a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs
new file mode 100644
index 00000000..346f4d5b
--- /dev/null
+++ b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs
@@ -0,0 +1,72 @@
+using BBWY.Common.Models;
+using BBWY.Server.Model.Db;
+using BBWY.Server.Model.Dto;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Yitter.IdGenerator;
+
+namespace BBWY.Server.Business
+{
+ public class ServiceOrderBusiness : BaseBusiness, IDenpendency
+ {
+ public ServiceOrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator)
+ {
+ }
+
+ public ServicOrderResponse GetList(ClientQueryServiceOrderRequest request)
+ {
+ var list = fsql.Select().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)
+ .Count(out var total)
+ .Page(request.PageIndex, request.PageSize)
+ .ToList((s, osku) => new ServiceOrderItemResponse
+ {
+ Id = s.Id,
+ ApplyTime = s.ApplyTime,
+ CreateTime = s.CreateTime,
+ ExpressName = s.ExpressName,
+ WayBillNo = s.WayBillNo,
+ ImageName = s.ImageName,
+ OrderId = s.OrderId,
+ SkuId = s.SkuId,
+ ProductId = s.ProductId,
+ ProductAppearance = s.ProductAppearance,
+ ProductFunction = s.ProductFunction,
+ ProductHealth = s.ProductHealth,
+ ProductPackage = s.ProductPackage,
+ ServiceResult = s.ServiceResult,
+ TransportDetails = s.TransportDetails,
+ WareHouseGrounpRemark = s.WareHouseGrounpRemark,
+ Status = s.Status,
+ ServiceId = s.ServiceId,
+ ShopId = s.ShopId,
+
+ Title = osku.Title,
+ ItemTotal = osku.ItemTotal.Value,
+ Logo = osku.Logo,
+ Price = osku.Price.Value,
+ SkuItemCount = osku.ItemTotal.Value,
+ ReturnDirection = s.ReturnDirection,
+ ServiceOrderRemark = s.ServiceOrderRemark,
+ StatusUpdateTime = s.StatusUpdateTime,
+ PurchaseOrderId = s.PurchaseOrderId,
+ PurchasePlatform = s.PurchasePlatform
+ });
+ return new ServicOrderResponse()
+ {
+ Count = total,
+ Items = list
+ };
+ }
+ }
+}
diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs
index 063acc64..77df46ea 100644
--- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs
+++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs
@@ -132,7 +132,7 @@ huitongkuaidi 百世快递
foreach (var serviceOrderJToken in jtokenList)
{
var serviceId = serviceOrderJToken.Value("serviceId");
- var status = serviceOrderJToken.Value("serviceStatus");
+ var status = (Enums.ServiceOrderState)serviceOrderJToken.Value("serviceStatus");
var statusUpdateTime = serviceOrderJToken.Value("updateTime").StampToDateTime();
var dbServiceOrder = dbServiceOrderList.FirstOrDefault(s => s.ServiceId == serviceId);
if (dbServiceOrder == null)
@@ -146,7 +146,7 @@ huitongkuaidi 百世快递
var isTuiHuoCang = false;
#region 待收货服务单,检查是否需要订阅快递100
- if (status == 10005)
+ if (status == Enums.ServiceOrderState.待收货)
{
try
{
@@ -486,31 +486,31 @@ huitongkuaidi 百世快递
if (expressOrder == null)
throw new Exception($"快递单号{waybillNo} 未找到对应的快递单");
- if (expressOrder.TransportStatus == 1) //已入库
+ if (expressOrder.TransportStatus == Enums.TransportState.已入库) //已入库
return;
IUpdate updateExpressOrder = null;
List> updateServiceOrderList = new List>();
var isUpdate = false;
- var newStatus = 0;
+ Enums.TransportState? newStatus = null;
DateTime? signTime = null;
if (kuaiDi100PushStateList_zaitu.Contains(state) || kuaiDi100PushStateList_lanshou.Contains(state))
{
//在途 //揽收
- if (expressOrder.TransportStatus != 3)
+ if (expressOrder.TransportStatus != Enums.TransportState.运输中)
{
isUpdate = true;
- newStatus = 3;
+ newStatus = Enums.TransportState.运输中;
}
}
else if (kuaiDi100PushStateList_qianshou.Contains(state))
{
- if (expressOrder.TransportStatus != 0)
+ if (expressOrder.TransportStatus != Enums.TransportState.待质检)
{
isUpdate = true;
- newStatus = 0;
+ newStatus = Enums.TransportState.待质检;
var data = jobject["lastResult"]["data"].Children().FirstOrDefault(d => d.Value("statusCode") == 3);
if (data != null)
@@ -519,10 +519,10 @@ huitongkuaidi 百世快递
}
else if (kuaiDi100PushStateList_paijian.Contains(state))
{
- if (expressOrder.TransportStatus != 2)
+ if (expressOrder.TransportStatus != Enums.TransportState.派送中)
{
isUpdate = true;
- newStatus = 2;
+ newStatus = Enums.TransportState.派送中;
}
}
@@ -532,11 +532,12 @@ huitongkuaidi 百世快递
{
fsql.Update(expressOrder.Id).Set(e => e.TransportStatus, newStatus)
.SetIf(state == 3, e => e.SignTime, signTime)
+ .Set(e => e.UpdateTime, DateTime.Now)
.ExecuteAffrows(); //签收
foreach (var serviceOrder in serviceOrderList)
{
- if (serviceOrder.TransportDetails == 1)
+ if (serviceOrder.TransportDetails == Enums.TransportState.已入库)
continue;
fsql.Update(serviceOrder.Id).Set(s => s.TransportDetails, newStatus)
.ExecuteAffrows();
diff --git a/BBWY.Server.Model/Db/Order/ExpressOrder.cs b/BBWY.Server.Model/Db/Order/ExpressOrder.cs
index 9f32ebcc..bf86bd7e 100644
--- a/BBWY.Server.Model/Db/Order/ExpressOrder.cs
+++ b/BBWY.Server.Model/Db/Order/ExpressOrder.cs
@@ -45,8 +45,8 @@ namespace BBWY.Server.Model.Db
///
/// 物流状态(0=待质检,1=已入库,2=派送中,3=运输中)
///
-
- public int? TransportStatus { get; set; }
+ [Column(MapType = typeof(int?))]
+ public Enums.TransportState? TransportStatus { get; set; }
[Column(DbType = "datetime")]
public DateTime? UpdateTime { get; set; }
diff --git a/BBWY.Server.Model/Db/Order/Serviceorder.cs b/BBWY.Server.Model/Db/Order/Serviceorder.cs
index 69d712f7..d3136bc7 100644
--- a/BBWY.Server.Model/Db/Order/Serviceorder.cs
+++ b/BBWY.Server.Model/Db/Order/Serviceorder.cs
@@ -7,284 +7,282 @@ namespace BBWY.Server.Model.Db
///
/// 服务单表(new)
///
- [ Table(Name = "serviceorder", DisableSyncStructure = true)]
- public partial class ServiceOrder {
-
- [Column(IsPrimary = true)]
- public long Id { get; set; }
-
- ///
- /// 售后成本(不含退款采购成本)
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? AfterTotalCost { get; set; } = 0.00M;
-
- ///
- /// 申请时间
- ///
- [Column(DbType = "datetime")]
- public DateTime? ApplyTime { get; set; }
-
- ///
- /// 耗材费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? ConsumableAmount { get; set; } = 0.00M;
-
- [Column(DbType = "datetime")]
- public DateTime? CreateTime { get; set; }
-
- ///
- /// 发货快递费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? DeliveryExpressFreight { get; set; } = 0.00M;
-
- ///
- /// 头程费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? FirstFreight { get; set; } = 0.00M;
-
- ///
- /// 退货拍摄图(名称)
- ///
- [Column(StringLength = 1000)]
- public string ImageName { get; set; }
-
- ///
- /// 入仓操作费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? InStorageAmount { get; set; } = 0.00M;
-
- ///
- /// 是否订阅快递100
- ///
-
- public bool? IsSubscribeKuaiDi100 { get; set; }
-
- ///
- /// 是否需要订阅快递100
- ///
- public bool? IsNeedSubscribeKuaiDi100 { get; set; }
-
- [Column(StringLength = 50)]
- public string OrderId { get; set; }
-
- ///
- /// 出仓操作费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? OutStorageAmount { get; set; } = 0.00M;
-
- ///
- /// 产品外观 (严重损=0 轻微损=1 新=2)
- ///
-
- public int? ProductAppearance { get; set; }
-
- ///
- /// 产品功能 (坏=0 好=1)
- ///
-
- public int? ProductFunction { get; set; }
-
- ///
- /// 商品健康状态 (残次品=0 良品=1)
- ///
-
- public int? ProductHealth { get; set; }
-
- ///
- /// 商品情况(定义待变更);名称待定,以前的商品情况,叶总需要更换定义
- ///
-
- public int? ProductHealth2 { get; set; }
-
- [Column(StringLength = 50)]
- public string ProductId { get; set; }
-
- ///
- /// 产品包装(无=0 非新=1 新=2)
- ///
-
- public int? ProductPackage { get; set; }
-
- ///
- /// 商品处理方式;弃用
- ///
-
- public int? ProductResult { get; set; }
-
- ///
- /// 采购方式
- ///
-
- public int? PurchaseMethod { get; set; }
-
- ///
- /// 采购单号
- ///
- [Column(StringLength = 100)]
- public string PurchaseOrderId { get; set; }
-
- ///
- /// 采购单主键
- ///
-
- public long? PurchaseOrderPKId { get; set; }
-
- ///
- /// 采购平台
- ///
-
- public int? PurchasePlatform { get; set; }
-
- ///
- /// 退款支付宝订单号
- ///
- [Column(StringLength = 100)]
- public string RefundAlipayOrderNo { get; set; }
-
- ///
- /// 退款金额
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? RefundAmount { get; set; } = 0.00M;
-
- ///
- /// 退货入仓操作费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? RefundInStorageAmount { get; set; } = 0.00M;
-
- ///
- /// 退款商户订单号
- ///
- [Column(StringLength = 100)]
- public string RefundMerchantOrderNo { get; set; }
-
- ///
- /// 退款采购成本
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? RefundPurchaseAmount { get; set; } = 0.00M;
-
- ///
- /// 退款时间
- ///
- [Column(DbType = "datetime")]
- public DateTime? RefundTime { get; set; }
-
- ///
- /// 售后补发成本
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;
-
- ///
- /// 补发快递费
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? ReissueFreight { get; set; } = 0.00M;
-
- ///
- /// 补发货款成本
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? ReissueProductAmount { get; set; } = 0.00M;
-
- ///
- /// 退货去向(退货仓=0,采购商=1,原返=2,无退货=3)
- ///
-
- public int? ReturnDirection { get; set; }
-
- ///
- /// SD退货运费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? SDRefundFreight { get; set; } = 0.00M;
-
- ///
- /// 服务单号
- ///
- [Column(StringLength = 20)]
- public string ServiceId { get; set; }
-
- ///
- /// 服务单租备注
- ///
- [Column(StringLength = 100)]
- public string ServiceOrderRemark { get; set; }
-
- ///
- /// 服务单处理结果
- ///
-
- public int? ServiceResult { get; set; }
-
- [Column(StringLength = 20)]
- public string ShopId { get; set; }
-
- [Column(StringLength = 50)]
- public string SkuId { get; set; }
-
- ///
- /// SKU销售件数
- ///
-
- public int? SkuItemCount { get; set; }
-
- ///
- /// 服务单状态
- ///
-
- public int? Status { get; set; }
-
- ///
- /// 变更时间
- ///
- [Column(DbType = "datetime")]
- public DateTime? StatusUpdateTime { get; set; }
-
- ///
- /// 仓储费
- ///
- [Column(DbType = "decimal(18,2)")]
- public decimal? StorageAmount { get; set; } = 0.00M;
-
- ///
- /// 服务单物流状态(0=待质检,1=已入库,2=派送中,3=运输中)
- ///
-
- public int? TransportDetails { get; set; }
-
- ///
- /// 仓库组备注
- ///
- [Column(StringLength = 100)]
- public string WareHouseGrounpRemark { get; set; }
-
-
- ///
- /// 快递单号
- ///
- [Column(StringLength = 100)]
- public string WayBillNo { get; set; }
-
- ///
- /// 快递公司名称
- ///
- [Column(StringLength = 100)]
- public string ExpressName { get; set; }
-
- ///
- /// 质检入库时间
- ///
- [Column(DbType = "datetime")]
- public DateTime? QualityInspectionInStoreTime { get; set; }
- }
+ [Table(Name = "serviceorder", DisableSyncStructure = true)]
+ public partial class ServiceOrder
+ {
+
+ [Column(IsPrimary = true)]
+ public long Id { get; set; }
+
+ ///
+ /// 售后成本(不含退款采购成本)
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? AfterTotalCost { get; set; } = 0.00M;
+
+ ///
+ /// 申请时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? ApplyTime { get; set; }
+
+ ///
+ /// 耗材费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? ConsumableAmount { get; set; } = 0.00M;
+
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
+
+ ///
+ /// 发货快递费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? DeliveryExpressFreight { get; set; } = 0.00M;
+
+ ///
+ /// 头程费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? FirstFreight { get; set; } = 0.00M;
+
+ ///
+ /// 退货拍摄图(名称)
+ ///
+ [Column(StringLength = 1000)]
+ public string ImageName { get; set; }
+
+ ///
+ /// 入仓操作费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? InStorageAmount { get; set; } = 0.00M;
+
+ ///
+ /// 是否订阅快递100
+ ///
+
+ public bool? IsSubscribeKuaiDi100 { get; set; }
+
+ ///
+ /// 是否需要订阅快递100
+ ///
+ public bool? IsNeedSubscribeKuaiDi100 { get; set; }
+
+ [Column(StringLength = 50)]
+ public string OrderId { get; set; }
+
+ ///
+ /// 出仓操作费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? OutStorageAmount { get; set; } = 0.00M;
+
+ ///
+ /// 产品外观 (严重损=0 轻微损=1 新=2)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.ProductAppearance? ProductAppearance { get; set; }
+
+ ///
+ /// 产品功能 (坏=0 好=1)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.ProductFunction? ProductFunction { get; set; }
+
+ ///
+ /// 商品健康状态 (残次品=0 良品=1)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.NewProductHealth? ProductHealth { get; set; }
+
+
+ [Column(StringLength = 50)]
+ public string ProductId { get; set; }
+
+ ///
+ /// 产品包装(无=0 非新=1 新=2)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.ProductPackage? ProductPackage { get; set; }
+
+ /*
+ ///
+ /// 商品处理方式;弃用
+ ///
+
+ public int? ProductResult { get; set; }
+ */
+
+ ///
+ /// 采购方式
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.PurchaseMethod? PurchaseMethod { get; set; }
+
+ ///
+ /// 采购单号
+ ///
+ [Column(StringLength = 100)]
+ public string PurchaseOrderId { get; set; }
+
+ ///
+ /// 采购单主键
+ ///
+
+ public long? PurchaseOrderPKId { get; set; }
+
+ ///
+ /// 采购平台
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.Platform? PurchasePlatform { get; set; }
+
+ ///
+ /// 退款支付宝订单号
+ ///
+ [Column(StringLength = 100)]
+ public string RefundAlipayOrderNo { get; set; }
+
+ ///
+ /// 退款金额
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal? RefundAmount { get; set; } = 0.00M;
+
+ ///
+ /// 退货入仓操作费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? RefundInStorageAmount { get; set; } = 0.00M;
+
+ ///
+ /// 退款商户订单号
+ ///
+ [Column(StringLength = 100)]
+ public string RefundMerchantOrderNo { get; set; }
+
+ ///
+ /// 退款采购成本
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? RefundPurchaseAmount { get; set; } = 0.00M;
+
+ ///
+ /// 退款时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? RefundTime { get; set; }
+
+ ///
+ /// 售后补发成本
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;
+
+ ///
+ /// 补发快递费
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal? ReissueFreight { get; set; } = 0.00M;
+
+ ///
+ /// 补发货款成本
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal? ReissueProductAmount { get; set; } = 0.00M;
+
+ ///
+ /// 退货去向(退货仓=0,采购商=1,原返=2,无退货=3)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.ReturnDirection? ReturnDirection { get; set; }
+
+ ///
+ /// SD退货运费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? SDRefundFreight { get; set; } = 0.00M;
+
+ ///
+ /// 服务单号
+ ///
+ [Column(StringLength = 20)]
+ public string ServiceId { get; set; }
+
+ ///
+ /// 服务单租备注
+ ///
+ [Column(StringLength = 100)]
+ public string ServiceOrderRemark { get; set; }
+
+ ///
+ /// 服务单处理结果
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.ServiceResult? ServiceResult { get; set; }
+
+ [Column(StringLength = 20)]
+ public string ShopId { get; set; }
+
+ [Column(StringLength = 50)]
+ public string SkuId { get; set; }
+
+ ///
+ /// SKU销售件数
+ ///
+
+ public int? SkuItemCount { get; set; }
+
+ ///
+ /// 服务单状态 待收货 = 10005,取消 = 10011,完成 = 10010
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.ServiceOrderState? Status { get; set; }
+
+ ///
+ /// 变更时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? StatusUpdateTime { get; set; }
+
+ ///
+ /// 仓储费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? StorageAmount { get; set; } = 0.00M;
+
+ ///
+ /// 服务单物流状态(0=待质检,1=已入库,2=派送中,3=运输中)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.TransportState? TransportDetails { get; set; }
+
+ ///
+ /// 仓库组备注
+ ///
+ [Column(StringLength = 100)]
+ public string WareHouseGrounpRemark { get; set; }
+
+
+ ///
+ /// 快递单号
+ ///
+ [Column(StringLength = 100)]
+ public string WayBillNo { get; set; }
+
+ ///
+ /// 快递公司名称
+ ///
+ [Column(StringLength = 100)]
+ public string ExpressName { get; set; }
+
+ ///
+ /// 质检入库时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? QualityInspectionInStoreTime { get; set; }
+ }
}
diff --git a/BBWY.Server.Model/Dto/Request/ServiceOrder/ClientQueryServiceOrderRequest.cs b/BBWY.Server.Model/Dto/Request/ServiceOrder/ClientQueryServiceOrderRequest.cs
new file mode 100644
index 00000000..d92b4eae
--- /dev/null
+++ b/BBWY.Server.Model/Dto/Request/ServiceOrder/ClientQueryServiceOrderRequest.cs
@@ -0,0 +1,30 @@
+
+using System;
+
+namespace BBWY.Server.Model.Dto
+{
+ public class ClientQueryServiceOrderRequest
+ {
+ public string OrderId { get; set; }
+
+ public string Sku { get; set; }
+
+ public string Spu { get; set; }
+
+ public string ServiceId { get; set; }
+
+ public string ShopId { get; set; }
+
+ public Enums.ServiceOrderState? ServiceOrderState { get; set; }
+
+ public Enums.ReturnDirection? ReturnDirection { get; set; }
+
+ public int PageIndex { get; set; }
+
+ public int PageSize { get; set; }
+
+ public DateTime? StartDate { get; set; }
+
+ public DateTime? EndDate { get; set; }
+ }
+}
diff --git a/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs b/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs
new file mode 100644
index 00000000..de0be04c
--- /dev/null
+++ b/BBWY.Server.Model/Dto/Response/ServiceOrder/ServiceOrderItemResponse.cs
@@ -0,0 +1,263 @@
+using FreeSql.DataAnnotations;
+using System;
+using System.Collections.Generic;
+
+namespace BBWY.Server.Model.Dto
+{
+ 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 Enums.ProductAppearance? ProductAppearance { get; set; }
+
+ ///
+ /// 产品功能 (坏=0 好=1)
+ ///
+
+ public Enums.ProductFunction? ProductFunction { get; set; }
+
+ ///
+ /// 商品健康状态 (残次品=0 良品=1)
+ ///
+
+ public Enums.NewProductHealth? ProductHealth { get; set; }
+
+ [Column(StringLength = 50)]
+ public string ProductId { get; set; }
+
+ ///
+ /// 产品包装(无=0 非新=1 新=2)
+ ///
+
+ public Enums.ProductPackage? ProductPackage { get; set; }
+
+
+ ///
+ /// 采购方式
+ ///
+
+ public Enums.PurchaseMethod? PurchaseMethod { get; set; }
+
+ ///
+ /// 采购单号
+ ///
+ public string PurchaseOrderId { get; set; }
+
+ ///
+ /// 采购单主键
+ ///
+
+ public long? PurchaseOrderPKId { get; set; }
+
+ ///
+ /// 采购平台
+ ///
+
+ public Enums.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 Enums.ReturnDirection? ReturnDirection { get; set; }
+
+ ///
+ /// SD退货运费
+ ///
+ public decimal? SDRefundFreight { get; set; } = 0.00M;
+
+ ///
+ /// 服务单号
+ ///
+ public string ServiceId { get; set; }
+
+ ///
+ /// 服务单租备注
+ ///
+ public string ServiceOrderRemark { get; set; }
+
+ ///
+ /// 服务单处理结果
+ ///
+
+ public Enums.ServiceResult? ServiceResult { get; set; }
+
+ public string ShopId { get; set; }
+
+ public string SkuId { get; set; }
+
+ ///
+ /// SKU销售件数
+ ///
+
+ public int? SkuItemCount { get; set; }
+
+ ///
+ /// 服务单状态 待收货 = 10005,取消 = 10011,完成 = 10010
+ ///
+
+ public Enums.ServiceOrderState? Status { get; set; }
+
+ ///
+ /// 变更时间
+ ///
+ public DateTime? StatusUpdateTime { get; set; }
+
+ ///
+ /// 仓储费
+ ///
+ public decimal? StorageAmount { get; set; } = 0.00M;
+
+ ///
+ /// 服务单物流状态(0=待质检,1=已入库,2=派送中,3=运输中)
+ ///
+
+ public Enums.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 ServicOrderResponse
+ {
+ public IList Items { get; set; }
+
+ public long Count { get; set; }
+ }
+}
diff --git a/BBWY.Server.Model/Enums.cs b/BBWY.Server.Model/Enums.cs
index 81653ec0..bba8aecf 100644
--- a/BBWY.Server.Model/Enums.cs
+++ b/BBWY.Server.Model/Enums.cs
@@ -16,7 +16,7 @@
}
///
- /// 采购方式
+ /// 采购方式 线上采购 = 0,线下采购 = 1
///
public enum PurchaseMethod
{
@@ -255,5 +255,61 @@
{
全类型 = 0, 订单管理 = 1, 商品管理 = 2
}
+
+ ///
+ /// 服务单状态
+ ///
+ public enum ServiceOrderState
+ {
+ 待收货 = 10005,
+ 已取消 = 10011,
+ 已完成 = 10010
+ }
+
+ public enum ReturnDirection
+ {
+ 退货仓 = 0, 采购商 = 1, 原返 = 2, 无退货 = 3
+ }
+
+
+ ///
+ /// 运输状态 0=待质检,1=已入库,2=派送中,3=运输中
+ ///
+ public enum TransportState
+ {
+ 待质检 = 0, 已入库 = 1, 派送中 = 2, 运输中 = 3
+ }
+
+ ///
+ /// 商品健康状态 残次品=0 良品=1
+ ///
+ public enum NewProductHealth
+ {
+ 残次品 = 0, 良品 = 1
+ }
+
+ ///
+ /// 产品功能 坏=0 好=1
+ ///
+ public enum ProductFunction
+ {
+ 坏 = 0, 好 = 1
+ }
+
+ ///
+ /// 产品外观 (严重损=0 轻微损=1 新=2)
+ ///
+ public enum ProductAppearance
+ {
+ 严重损 = 0, 轻微损 = 1, 新 = 2
+ }
+
+ ///
+ /// 产品包装(无=0 非新=1 新=2)
+ ///
+ public enum ProductPackage
+ {
+ 无 = 0, 非新 = 1, 新 = 2
+ }
}
}
diff --git a/JD.API/Controllers/PlatformSDKController.cs b/JD.API/Controllers/PlatformSDKController.cs
index a616ebc5..6e52da0a 100644
--- a/JD.API/Controllers/PlatformSDKController.cs
+++ b/JD.API/Controllers/PlatformSDKController.cs
@@ -340,7 +340,7 @@ namespace JD.API.API.Controllers
///
///
[HttpPost]
- public JArray GetServiceOrderList([FromBody] QueryServiceOrderRequest request)
+ public JArray GetServiceOrderList([FromBody] ClientQueryServiceOrderRequest request)
{
return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetServiceOrderList(request);
}