From 9f865f1ae25ed874918514873e4a7b029fb00138 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 22 Mar 2023 19:56:28 +0800 Subject: [PATCH 01/31] 1 --- BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index 4f40294b..fcf18856 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -113,7 +113,7 @@ huitongkuaidi 百世快递 var apiOrderIdList = jtokenList.Where(j => exceptServiceIdList.Contains(j.Value("serviceId"))).Select(j => j.Value("orderId")).ToList(); var dbOrderSkuList = fsql.Select().InnerJoin((osku, o) => osku.OrderId == o.Id) - .Where((osku, o) => osku.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId) && osku.Price != 0) + .Where((osku, o) => o.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId) && osku.Price != 0) .ToList((osku, o) => new { Id = osku.Id, @@ -275,7 +275,8 @@ huitongkuaidi 百世快递 break; } - SyncServiceOrder(shop, shopId, jtokenList, relayAPIHost, request.AppKey, request.AppSecret, request.AppToken); + if (jtokenList.Count() > 0) + SyncServiceOrder(shop, shopId, jtokenList, relayAPIHost, request.AppKey, request.AppSecret, request.AppToken); } catch (Exception ex) { From 52715208f54667fcff7a971cc8fa7ef187acb955 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 23 Mar 2023 13:54:55 +0800 Subject: [PATCH 02/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index fcf18856..caeb10fc 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -13,6 +13,7 @@ using Yitter.IdGenerator; using System.Linq; using BBWY.Server.Model.Db; using FreeSql; +using BBWY.Common.Extensions; namespace BBWY.Server.Business.Sync { @@ -131,7 +132,7 @@ huitongkuaidi 百世快递 { var serviceId = serviceOrderJToken.Value("serviceId"); var status = serviceOrderJToken.Value("sserviceOrderJToken"); - var statusUpdateTime = serviceOrderJToken.Value("updateTime"); + var statusUpdateTime = serviceOrderJToken.Value("updateTime").StampToDateTime(); var dbServiceOrder = dbServiceOrderList.FirstOrDefault(s => s.ServiceId == serviceId); if (dbServiceOrder == null) { @@ -192,7 +193,7 @@ huitongkuaidi 百世快递 StatusUpdateTime = statusUpdateTime, IsSubscribeKuaiDi100 = false, IsNeedSubscribeKuaiDi100 = isNeedSubscribeKuaiDi100, - ApplyTime = serviceOrderJToken.Value("applyTime"), + ApplyTime = serviceOrderJToken.Value("applyTime").StampToDateTime(), }; if (isTuiHuoCang) dbServiceOrder.ReturnDirection = 0; From 235b4c27d91bb79f9b496929bdee8d917eadc980 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 23 Mar 2023 15:45:20 +0800 Subject: [PATCH 03/31] 1 --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 22 ++++++++++++------- BBWY.Server.Model/Db/Order/ExpressOrder.cs | 2 +- BBWY.Server.Model/Db/Order/Serviceorder.cs | 21 +++++++----------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index caeb10fc..be1310af 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -93,6 +93,7 @@ huitongkuaidi 百世快递 System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncServiceOrderTaskScheduler); + } } @@ -117,12 +118,12 @@ huitongkuaidi 百世快递 .Where((osku, o) => o.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId) && osku.Price != 0) .ToList((osku, o) => new { - Id = osku.Id, - ProductId = osku.ProductId, - SkuId = osku.SkuId, - OrderId = osku.OrderId, - ItemTotal = osku.ItemTotal, - StorageType = o.StorageType + osku.Id, + osku.ProductId, + osku.SkuId, + osku.OrderId, + osku.ItemTotal, + o.StorageType }); List insertServiceOrderList = new List(); @@ -131,7 +132,7 @@ huitongkuaidi 百世快递 foreach (var serviceOrderJToken in jtokenList) { var serviceId = serviceOrderJToken.Value("serviceId"); - var status = serviceOrderJToken.Value("sserviceOrderJToken"); + var status = serviceOrderJToken.Value("serviceStatus"); var statusUpdateTime = serviceOrderJToken.Value("updateTime").StampToDateTime(); var dbServiceOrder = dbServiceOrderList.FirstOrDefault(s => s.ServiceId == serviceId); if (dbServiceOrder == null) @@ -313,7 +314,7 @@ huitongkuaidi 百世快递 try { var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var serviceOrderList = fsql.Select().Where(s => s.ShopId == shop.Id && + var serviceOrderList = fsql.Select().Where(s => s.ShopId == shop.ShopId && s.IsNeedSubscribeKuaiDi100 == true && s.IsSubscribeKuaiDi100 == false) .OrderByDescending(s => s.StatusUpdateTime) @@ -353,6 +354,11 @@ huitongkuaidi 百世快递 serviceOrder.WayBillNo = serviceOrderDeliveryResponse.Data.Value("expressCode"); serviceOrder.ExpressName = serviceOrderDeliveryResponse.Data.Value("expressCompany"); + if (!string.IsNullOrEmpty(serviceOrder.WayBillNo) && serviceOrder.WayBillNo.StartsWith("JD") && string.IsNullOrEmpty(serviceOrder.ExpressName)) + { + serviceOrder.ExpressName = "京东快递"; + } + isUpdateDelivery = !string.IsNullOrEmpty(serviceOrder.WayBillNo) && !string.IsNullOrEmpty(serviceOrder.ExpressName); } #endregion diff --git a/BBWY.Server.Model/Db/Order/ExpressOrder.cs b/BBWY.Server.Model/Db/Order/ExpressOrder.cs index 78649d07..9f32ebcc 100644 --- a/BBWY.Server.Model/Db/Order/ExpressOrder.cs +++ b/BBWY.Server.Model/Db/Order/ExpressOrder.cs @@ -11,7 +11,7 @@ namespace BBWY.Server.Model.Db public partial class ExpressOrder { - [Column(IsPrimary = true, IsIdentity = true)] + [Column(IsPrimary = true)] public long Id { get; set; } [Column(DbType = "datetime")] diff --git a/BBWY.Server.Model/Db/Order/Serviceorder.cs b/BBWY.Server.Model/Db/Order/Serviceorder.cs index 9e7193ab..69d712f7 100644 --- a/BBWY.Server.Model/Db/Order/Serviceorder.cs +++ b/BBWY.Server.Model/Db/Order/Serviceorder.cs @@ -1,21 +1,16 @@ -using FreeSql.DatabaseModel;using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; -using Newtonsoft.Json; using FreeSql.DataAnnotations; +using System; -namespace BBWY.Server.Model.Db { +namespace BBWY.Server.Model.Db +{ - /// - /// 服务单表(new) - /// - [ Table(Name = "serviceorder", DisableSyncStructure = true)] + /// + /// 服务单表(new) + /// + [ Table(Name = "serviceorder", DisableSyncStructure = true)] public partial class ServiceOrder { - [Column(IsPrimary = true, IsIdentity = true)] + [Column(IsPrimary = true)] public long Id { get; set; } /// From 57ba0b7f4bf04177ebc08f7bbc195fd1b7a7e937 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 23 Mar 2023 16:26:45 +0800 Subject: [PATCH 04/31] 1 --- BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index be1310af..a560d097 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -451,8 +451,6 @@ huitongkuaidi 百世快递 return result.TargetCode; } - - public void ReceiveKuaiDi100Push(string param) { JObject jobject = JObject.Parse(param); From 0f8d8aa22df3788805e93ae2d33657ae16d4621e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 23 Mar 2023 18:03:23 +0800 Subject: [PATCH 05/31] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E4=BB=93=E5=88=A4=E5=AE=9A=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index a560d097..5da8fcbe 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -148,35 +148,33 @@ huitongkuaidi 百世快递 #region 待收货服务单,检查是否需要订阅快递100 if (status == 10005) { - if (dbOsku.StorageType == Enums.StorageType.代发) - isNeedSubscribeKuaiDi100 = true; - else + try { - try + var serviceOrderDetailResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderDetail", new QueryServiceOrderDetailRequest() { - var serviceOrderDetailResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderDetail", new QueryServiceOrderDetailRequest() - { - AppKey = appKey, - AppSecret = appSecret, - AppToken = token, - OrderId = serviceOrderId, - ServiceId = serviceId, - Platform = Enums.Platform.京东, - VenderId = shop.VenderId - }, GetYunDingRequestHeader(), HttpMethod.Post); - - if (serviceOrderDetailResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取服务单详情失败 {serviceOrderDetailResult.Content}"); - var serviceOrderDetailResponse = JsonConvert.DeserializeObject>(serviceOrderDetailResult.Content); - if (!serviceOrderDetailResponse.Success) - throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}"); - - //检查退货城市是否为泉州 - isNeedSubscribeKuaiDi100 = serviceOrderDetailResponse.Data["returnWareAddress"].Value("cityCode") == 2812; - isTuiHuoCang = isNeedSubscribeKuaiDi100; - } - catch { } + AppKey = appKey, + AppSecret = appSecret, + AppToken = token, + OrderId = serviceOrderId, + ServiceId = serviceId, + Platform = Enums.Platform.京东, + VenderId = shop.VenderId + }, GetYunDingRequestHeader(), HttpMethod.Post); + + if (serviceOrderDetailResult.StatusCode != System.Net.HttpStatusCode.OK) + throw new Exception($"获取服务单详情失败 {serviceOrderDetailResult.Content}"); + var serviceOrderDetailResponse = JsonConvert.DeserializeObject>(serviceOrderDetailResult.Content); + if (!serviceOrderDetailResponse.Success) + throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}"); + + //检查退货城市是否为泉州 + isNeedSubscribeKuaiDi100 = serviceOrderDetailResponse.Data["returnWareAddress"].Value("cityCode") == 2812; + isTuiHuoCang = isNeedSubscribeKuaiDi100; } + catch { } + + if (dbOsku.StorageType == Enums.StorageType.代发) + isNeedSubscribeKuaiDi100 = true; } #endregion From dfbecbf721cf45854df2a58ba5143f89151a7bc5 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 23 Mar 2023 23:23:56 +0800 Subject: [PATCH 06/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8D=95=E9=80=80=E8=B4=A7=E5=9C=B0=E5=9D=80=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 5 ++-- BBWY.Test/Program.cs | 25 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index 5da8fcbe..a2df3d17 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -167,8 +167,9 @@ huitongkuaidi 百世快递 if (!serviceOrderDetailResponse.Success) throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}"); - //检查退货城市是否为泉州 - isNeedSubscribeKuaiDi100 = serviceOrderDetailResponse.Data["returnWareAddress"].Value("cityCode") == 2812; + //检查退货城市是否为泉州鲤城区 + isNeedSubscribeKuaiDi100 = (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value("cityCode") ?? 0) == 1332 && + (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value("countyCode") ?? 0) == 42930; isTuiHuoCang = isNeedSubscribeKuaiDi100; } catch { } diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index ac47a094..65a23421 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -45,16 +45,16 @@ namespace BBWY.Test //var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具 //var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品 - var dt1 = DateTime.Now; - List list = new List(); - for (var i = 1; i <= 5000000; i++) - { - var str = tomMd5($"Mozilla/5.0 (Linux; Android 12; 21121210C Build/SKQ1.211006.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/13.8 SP-engine/2.46.0 baiduboxapp/13.8.1.10 (Baidu; P1 12) NABar/1.0 Edg/102.0.5005.63_{i}_192.158.241.{i}_28726526517321"); - Console.WriteLine($"生成第{i}位指纹,长度{str.Length},{str}"); - list.Add(str); - } - var dt2 = DateTime.Now; - Console.WriteLine($"总数量{list.Count},总耗时{(dt2 - dt1).TotalSeconds}秒"); + //var dt1 = DateTime.Now; + //List list = new List(); + //for (var i = 1; i <= 5000000; i++) + //{ + // var str = tomMd5($"Mozilla/5.0 (Linux; Android 12; 21121210C Build/SKQ1.211006.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/13.8 SP-engine/2.46.0 baiduboxapp/13.8.1.10 (Baidu; P1 12) NABar/1.0 Edg/102.0.5005.63_{i}_192.158.241.{i}_28726526517321"); + // Console.WriteLine($"生成第{i}位指纹,长度{str.Length},{str}"); + // list.Add(str); + //} + //var dt2 = DateTime.Now; + //Console.WriteLine($"总数量{list.Count},总耗时{(dt2 - dt1).TotalSeconds}秒"); @@ -113,6 +113,11 @@ namespace BBWY.Test //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(); } From 1817fe1dd5832831ae9438c61ca270e97b3c7e00 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 24 Mar 2023 21:27:16 +0800 Subject: [PATCH 07/31] 1 --- BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index a2df3d17..62e131d7 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -452,6 +452,7 @@ huitongkuaidi 百世快递 public void ReceiveKuaiDi100Push(string param) { + nLogManager.Default().Info($"收到快递100推送 {param}"); JObject jobject = JObject.Parse(param); var waybillNo = jobject["lastResult"].Value("nu"); var state = jobject["lastResult"].Value("state"); From 115c16de227c162a73a26cb75989620137f8ea06 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 24 Mar 2023 22:09:01 +0800 Subject: [PATCH 08/31] =?UTF-8?q?=E5=BF=AB=E9=80=92100=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.API/Controllers/ServiceOrderSyncController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs index f296ff33..1361075e 100644 --- a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs +++ b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs @@ -17,7 +17,7 @@ namespace BBWY.Server.API.Controllers [Consumes("application/x-www-form-urlencoded")] [HttpPost] - public void ReceiveKuaiDi100Push(string sign, string param) + public void ReceiveKuaiDi100Push([FromForm] string sign, [FromForm] string param) { jdServiceOrderSyncBusiness.ReceiveKuaiDi100Push(param); } From ead609073473fe44a382abdb9b89b290389c28e9 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 24 Mar 2023 22:35:38 +0800 Subject: [PATCH 09/31] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E5=AE=B6=E6=8E=A8=E9=80=81=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.API/Controllers/ServiceOrderSyncController.cs | 2 ++ BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 2 +- BBWY.Server.Model/Dto/Request/Sync/OrderPublishRequest.cs | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs index 1361075e..305609f0 100644 --- a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs +++ b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs @@ -1,4 +1,5 @@ using BBWY.Server.Business.Sync; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; @@ -15,6 +16,7 @@ namespace BBWY.Server.API.Controllers this.jdServiceOrderSyncBusiness = jdServiceOrderSyncBusiness; } + [Consumes("application/x-www-form-urlencoded")] [HttpPost] public void ReceiveKuaiDi100Push([FromForm] string sign, [FromForm] string param) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index abee76eb..c3b19cc4 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -882,7 +882,7 @@ namespace BBWY.Server.Business */ nLogManager.Default().Info($"订单推送-{JsonConvert.SerializeObject(request)}"); - if (request.erpOrderStatus != "5") + if (request.orderStatus != "5") return; var shop = venderBusiness.GetShopByVenderId(request.venderId); if (shop == null) diff --git a/BBWY.Server.Model/Dto/Request/Sync/OrderPublishRequest.cs b/BBWY.Server.Model/Dto/Request/Sync/OrderPublishRequest.cs index 170a8285..78a9dd01 100644 --- a/BBWY.Server.Model/Dto/Request/Sync/OrderPublishRequest.cs +++ b/BBWY.Server.Model/Dto/Request/Sync/OrderPublishRequest.cs @@ -2,7 +2,7 @@ { public class OrderPublishRequest { - public string erpOrderStatus { get; set; } + public string orderStatus { get; set; } public string orderId { get; set; } From 8f67f2c6cc83b84ff07639761a6d0bd2f82da631 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sat, 25 Mar 2023 19:32:25 +0800 Subject: [PATCH 10/31] =?UTF-8?q?=E6=9A=82=E5=81=9C=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderSyncController.cs | 20 ++- .../Controllers/ServiceOrderSyncController.cs | 23 +++- .../Sync/OrderSyncBusiness.cs | 121 ++++++++---------- BBWY.Server.Business/TaskSchedulerManager.cs | 4 + BBWY.Server.Model/Db/Order/WaitPayOrder.cs | 21 +++ 5 files changed, 111 insertions(+), 78 deletions(-) create mode 100644 BBWY.Server.Model/Db/Order/WaitPayOrder.cs diff --git a/BBWY.Server.API/Controllers/OrderSyncController.cs b/BBWY.Server.API/Controllers/OrderSyncController.cs index 7185a235..0661e0c0 100644 --- a/BBWY.Server.API/Controllers/OrderSyncController.cs +++ b/BBWY.Server.API/Controllers/OrderSyncController.cs @@ -59,7 +59,7 @@ namespace BBWY.Server.API.Controllers } /// - /// 订单推送 + /// 接收订单推送 /// /// [HttpPost] @@ -67,5 +67,23 @@ namespace BBWY.Server.API.Controllers { orderSyncBusiness.OrderPublish(request); } + + /// + /// 检查全店暂停订单 + /// + [HttpPost] + public void CheckJDPauseOrder() + { + orderSyncBusiness.CheckJDPauseOrder(null); + } + + /// + /// 检查全店暂停订单 + /// + [HttpPost("{shopId}")] + public void CheckJDPauseOrder(long shopId) + { + orderSyncBusiness.CheckJDPauseOrder(shopId); + } } } diff --git a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs index 305609f0..acc96cd0 100644 --- a/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs +++ b/BBWY.Server.API/Controllers/ServiceOrderSyncController.cs @@ -1,12 +1,11 @@ -using BBWY.Server.Business.Sync; -using Microsoft.AspNetCore.Authorization; +using BBWY.Server.API.Filters; +using BBWY.Server.Business.Sync; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Newtonsoft.Json.Linq; +using System.Linq; namespace BBWY.Server.API.Controllers { - public class ServiceOrderSyncController : BaseApiController { private JDServiceOrderSyncBusiness jdServiceOrderSyncBusiness; @@ -16,12 +15,24 @@ namespace BBWY.Server.API.Controllers this.jdServiceOrderSyncBusiness = jdServiceOrderSyncBusiness; } - + [Consumes("application/x-www-form-urlencoded")] [HttpPost] - public void ReceiveKuaiDi100Push([FromForm] string sign, [FromForm] string param) + public IActionResult ReceiveKuaiDi100Push([FromForm] string sign, [FromForm] string param) { + var filters = ControllerContext.ActionDescriptor.FilterDescriptors; + var filterToRemove = filters.FirstOrDefault(f => f.Filter.GetType() == typeof(ResultFilter)); + if (filterToRemove != null) + { + filters.Remove(filterToRemove); + } jdServiceOrderSyncBusiness.ReceiveKuaiDi100Push(param); + return new JsonResult(new + { + result = true, + returnCode = "200", + message = "成功" + }); } /// diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index c3b19cc4..e487ff39 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -809,86 +809,65 @@ namespace BBWY.Server.Business return orderState; } + /// + /// 接收订单推送 + /// + /// public void OrderPublish(OrderPublishRequest request) { - /* - if (erpOrderStatus.equals(("1"))){ - status="新订单"; -}else if (erpOrderStatus.equals(("2"))){ - status="等待付款"; -}else if (erpOrderStatus.equals(("3"))){ - status="等待付款确认"; -}else if (erpOrderStatus.equals(("4"))){ - status="延迟付款确认"; -}else if (erpOrderStatus.equals(("5"))){ - status="暂停"; -}else if (erpOrderStatus.equals(("6"))){ - status="店长最终审核"; -}else if (erpOrderStatus.equals(("7"))){ - status="等待打印"; -}else if (erpOrderStatus.equals(("8"))){ - status="等待出库"; -}else if (erpOrderStatus.equals(("9"))){ - status="等待打包"; -}else if (erpOrderStatus.equals(("10"))){ - status="等待发货"; -}else if (erpOrderStatus.equals(("11"))){ - status="自提途中"; -}else if (erpOrderStatus.equals(("12"))){ - status="上门提货"; -}else if (erpOrderStatus.equals(("13"))){ - status="自提退货"; -}else if (erpOrderStatus.equals(("14"))){ - status="确认自提"; -}else if (erpOrderStatus.equals(("15"))){ - status="等待回执"; -}else if (erpOrderStatus.equals(("16"))){ - status="等待确认收货"; -}else if (erpOrderStatus.equals(("17"))){ - status="配送退货"; -}else if (erpOrderStatus.equals(("18"))){ - status="货到付款确认"; -}else if (erpOrderStatus.equals(("19"))){ - status="完成"; -}else if (erpOrderStatus.equals(("20"))){ - status="等待分期付款"; -}else if (erpOrderStatus.equals(("21"))){ - status="收款确认"; -}else if (erpOrderStatus.equals(("22"))){ - status="锁定"; -}else if (erpOrderStatus.equals(("23"))){ - status="等待退款"; -}else if (erpOrderStatus.equals(("24"))){ - status="等待客户回复"; -}else if (erpOrderStatus.equals(("25"))){ - status="厂商确认完成"; -}else if (erpOrderStatus.equals(("29"))){ - status="等待三方出库"; -}else if (erpOrderStatus.equals(("30"))){ - status="等待三方发货"; -}else if (erpOrderStatus.equals(("31"))){ - status="等待三方发货完成"; -}else if (erpOrderStatus.equals(("26"))){ - status="等待再审核"; -}else if (erpOrderStatus.equals(("27"))){ - status="对账中"; -}else if (erpOrderStatus.equals(("28"))){ - status="退款中"; -}else if (erpOrderStatus.equals(("-1"))){ - status="未知"; -}else if (erpOrderStatus.equals(("NOT_PAY"))){ - status="新订单"; -}else if (erpOrderStatus.equals( - */ nLogManager.Default().Info($"订单推送-{JsonConvert.SerializeObject(request)}"); - if (request.orderStatus != "5") + if (request.orderStatus != "TRADE_CREATED") return; var shop = venderBusiness.GetShopByVenderId(request.venderId); if (shop == null) return; - Task.Factory.StartNew(() => SyncOrder(shop, request.orderId, null, null, isAuto: false, Enums.SortTimeType.StartTime), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler); + var isExists = fsql.Select(request.orderId).Any(); + if (!isExists) + { + fsql.Insert(new WaitPayOrder() + { + CreateTime = DateTime.Now, + Id = request.orderId, + ShopId = long.Parse(shop.ShopId) + }).ExecuteAffrows(); + } + } + + #region 同步暂停订单 + public void CheckJDPauseOrder(long? shopId) + { + var shopList = venderBusiness.GetShopList(shopId); + var shopIds = shopList.Select(s => long.Parse(s.ShopId)).ToList(); + + fsql.Delete().Where(wo => shopIds.Contains(wo.ShopId.Value)) + .Where(wo => fsql.Select().Where(o => o.Id == wo.Id).Any()) + .ExecuteAffrows(); + + + var waitPayOrderList = fsql.Select().Where(wo => shopIds.Contains(wo.ShopId.Value)).ToList(); + if (waitPayOrderList.Count() == 0) + return; + + foreach (var shop in shopList) + { + var currentWaitPayOrderList = waitPayOrderList.Where(wo => wo.ShopId == long.Parse(shop.ShopId)).ToList(); + if (currentWaitPayOrderList.Count() > 0) + { + Task.Factory.StartNew(() => CheckJDPauseOrder(shop, currentWaitPayOrderList), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler); + } + } + } + + private void CheckJDPauseOrder(ShopResponse shop, IList waitPayOrderList) + { + foreach (var w in waitPayOrderList) + { + SyncOrder(shop, w.Id); + } } + + #endregion } } diff --git a/BBWY.Server.Business/TaskSchedulerManager.cs b/BBWY.Server.Business/TaskSchedulerManager.cs index 8ee4567a..93a26df1 100644 --- a/BBWY.Server.Business/TaskSchedulerManager.cs +++ b/BBWY.Server.Business/TaskSchedulerManager.cs @@ -14,6 +14,8 @@ namespace BBWY.Server.Business public LimitedConcurrencyLevelTaskScheduler SyncServiceOrderTaskScheduler { get; private set; } + public LimitedConcurrencyLevelTaskScheduler SyncPauseOrderTaskScheduler { get; private set; } + public LimitedConcurrencyLevelTaskScheduler PurchaseOrderCallbackTaskScheduler { get; private set; } public LimitedConcurrencyLevelTaskScheduler JDPopularizeTaskScheduler { get; private set; } @@ -48,6 +50,8 @@ namespace BBWY.Server.Business JDPromotionDelayTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); JDPromotionMonitorTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); JDPromotionAutoStartTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); + + SyncPauseOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); } } } diff --git a/BBWY.Server.Model/Db/Order/WaitPayOrder.cs b/BBWY.Server.Model/Db/Order/WaitPayOrder.cs new file mode 100644 index 00000000..adca5525 --- /dev/null +++ b/BBWY.Server.Model/Db/Order/WaitPayOrder.cs @@ -0,0 +1,21 @@ +using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + [ Table(Name = "waitpayorder", DisableSyncStructure = true)] + public partial class WaitPayOrder + { + + [Column(StringLength = 100, IsPrimary = true, IsNullable = false)] + public string Id { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + public long? ShopId { get; set; } + + } + +} From ca7acfc21e201c0914850110d80e804d07240f2e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sat, 25 Mar 2023 19:38:02 +0800 Subject: [PATCH 11/31] =?UTF-8?q?=E6=9A=82=E5=81=9C=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index e487ff39..f05c5c98 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -848,7 +848,7 @@ namespace BBWY.Server.Business var waitPayOrderList = fsql.Select().Where(wo => shopIds.Contains(wo.ShopId.Value)).ToList(); if (waitPayOrderList.Count() == 0) - return; + return; foreach (var shop in shopList) { From a6efd5bd86a85aabd32eb2d0e352d465fbd32490 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sat, 25 Mar 2023 22:27:14 +0800 Subject: [PATCH 12/31] 1 --- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index f05c5c98..9938bd21 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -841,14 +841,15 @@ namespace BBWY.Server.Business var shopList = venderBusiness.GetShopList(shopId); var shopIds = shopList.Select(s => long.Parse(s.ShopId)).ToList(); - fsql.Delete().Where(wo => shopIds.Contains(wo.ShopId.Value)) - .Where(wo => fsql.Select().Where(o => o.Id == wo.Id).Any()) - .ExecuteAffrows(); + var deleteRow = fsql.Select().Where(wo => shopIds.Contains(wo.ShopId.Value)) + .Where(wo => fsql.Select().Where(o => o.Id == wo.Id).Any()) + .ToDelete() + .ExecuteAffrows(); var waitPayOrderList = fsql.Select().Where(wo => shopIds.Contains(wo.ShopId.Value)).ToList(); if (waitPayOrderList.Count() == 0) - return; + return; foreach (var shop in shopList) { From 7dccb37867d45e638464f6a2a5cc97d4a4637a71 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 26 Mar 2023 16:35:28 +0800 Subject: [PATCH 13/31] =?UTF-8?q?=E6=8F=92=E5=85=A5=E5=BF=AB=E9=80=92?= =?UTF-8?q?=E5=8D=95=E8=BF=87=E6=BB=A4=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 18 +++++++++++++++++- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index 62e131d7..0709b372 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -410,7 +410,7 @@ huitongkuaidi 百世快递 .SetIf(isUpdateSubscribe, s => s.IsSubscribeKuaiDi100, true); updateSerivceOrderList.Add(update); - if (isUpdateDelivery) + if (isUpdateDelivery && insertExpressOrderList.Count(e => e.WayBillNo == serviceOrder.WayBillNo) == 0) { insertExpressOrderList.Add(new ExpressOrder() { @@ -426,6 +426,22 @@ huitongkuaidi 百世快递 } } + if (insertExpressOrderList.Count() > 0) + { + var insertExpressOrderWayBillNoList = insertExpressOrderList.Select(e => e.WayBillNo).ToList(); + var dbWayBillNoList = fsql.Select().Where(e => insertExpressOrderWayBillNoList.Contains(e.WayBillNo)).ToList(e => e.WayBillNo); + if (dbWayBillNoList.Count() > 0) + { + for (var i = 0; i < insertExpressOrderList.Count(); i++) + { + if (dbWayBillNoList.Any(w => w == insertExpressOrderList[i].WayBillNo)) + { + insertExpressOrderList.Remove(insertExpressOrderList[i]); + i--; + } + } + } + } fsql.Transaction(() => { diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 9938bd21..f345e429 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -735,7 +735,7 @@ namespace BBWY.Server.Business var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); foreach (var shop in shopList) { - Task.Factory.StartNew(() => SyncOrder(shop, string.Empty, isAuto: true), System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler); + Task.Factory.StartNew(() => SyncOrder(shop, string.Empty, isAuto: true), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler); } } From cb42a1106741ae074f168e51fc12f6be63ba1331 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 26 Mar 2023 19:50:04 +0800 Subject: [PATCH 14/31] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BF=AB=E9=80=92100?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E7=8A=B6=E6=80=81=E8=AF=86=E5=88=AB=E8=A7=84?= =?UTF-8?q?=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index 0709b372..063acc64 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -20,7 +20,10 @@ namespace BBWY.Server.Business.Sync public class JDServiceOrderSyncBusiness : BaseSyncBusiness, IDenpendency { private IList jd_kd100_logisticsCompanyDictionary; - private IList kuaiDi100PushStateList; + private IList kuaiDi100PushStateList_zaitu; + private IList kuaiDi100PushStateList_lanshou; + private IList kuaiDi100PushStateList_qianshou; + private IList kuaiDi100PushStateList_paijian; public JDServiceOrderSyncBusiness(RestApiService restApiService, IOptions options, NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, yunDingBusiness) { @@ -49,13 +52,10 @@ jingdongkuaiyun 京东快运 huitongkuaidi 百世快递 */ - kuaiDi100PushStateList = new List() - { - 0, //在途 - 1, //揽收 - 3, //签收 - 5, //派件 - }; + kuaiDi100PushStateList_zaitu = new List() { 0, 1001, 1002, 1003 }; + kuaiDi100PushStateList_lanshou = new List() { 1, 101, 102, 103 }; + kuaiDi100PushStateList_qianshou = new List() { 3, 301, 302, 303, 304 }; + kuaiDi100PushStateList_paijian = new List() { 5, 501 }; jd_kd100_logisticsCompanyDictionary = new List() { @@ -472,7 +472,10 @@ huitongkuaidi 百世快递 JObject jobject = JObject.Parse(param); var waybillNo = jobject["lastResult"].Value("nu"); var state = jobject["lastResult"].Value("state"); - if (!kuaiDi100PushStateList.Contains(state)) + if (!kuaiDi100PushStateList_lanshou.Contains(state) && + !kuaiDi100PushStateList_zaitu.Contains(state) && + !kuaiDi100PushStateList_paijian.Contains(state) && + !kuaiDi100PushStateList_qianshou.Contains(state)) return; var serviceOrderList = fsql.Select().Where(s => s.WayBillNo == waybillNo).ToList(); @@ -489,18 +492,11 @@ huitongkuaidi 百世快递 IUpdate updateExpressOrder = null; List> updateServiceOrderList = new List>(); - /* - 0, //在途 - 1, //揽收 - 3, //签收 - 5, //派件 - */ - var isUpdate = false; var newStatus = 0; DateTime? signTime = null; - if (state == 0 || state == 1) + if (kuaiDi100PushStateList_zaitu.Contains(state) || kuaiDi100PushStateList_lanshou.Contains(state)) { //在途 //揽收 if (expressOrder.TransportStatus != 3) @@ -509,7 +505,7 @@ huitongkuaidi 百世快递 newStatus = 3; } } - else if (state == 3) + else if (kuaiDi100PushStateList_qianshou.Contains(state)) { if (expressOrder.TransportStatus != 0) { @@ -521,7 +517,7 @@ huitongkuaidi 百世快递 signTime = DateTime.Parse(data.Value("ftime")); } } - else if (state == 5) + else if (kuaiDi100PushStateList_paijian.Contains(state)) { if (expressOrder.TransportStatus != 2) { From 3561e0f23ef70d8e4ee80766e378b55221ce914c Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 26 Mar 2023 22:36:11 +0800 Subject: [PATCH 15/31] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E7=94=B3=E9=80=9A?= =?UTF-8?q?=E5=BF=AB=E9=80=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs b/BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs index e5d4a93a..db1d21fd 100644 --- a/BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs +++ b/BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs @@ -21,7 +21,7 @@ namespace BBWY.Server.Business new LogisticsCompanyRelationship(){SourceName="圆通速递(YTO)",TargetName="圆通快递"}, new LogisticsCompanyRelationship(){SourceName="邮政国内小包",TargetName="邮政快递包裹"}, new LogisticsCompanyRelationship(){SourceName="韵达快递",TargetName="韵达快递"}, - new LogisticsCompanyRelationship(){SourceName="申通快递(STO)",TargetName="厂家自送"}, + new LogisticsCompanyRelationship(){SourceName="申通快递(STO)",TargetName="申通快递",SecondTargetName="厂家自送"}, new LogisticsCompanyRelationship(){SourceName="顺丰速运",TargetName="顺丰快递"}, new LogisticsCompanyRelationship(){SourceName="百世快递",TargetName="厂家自送"}, new LogisticsCompanyRelationship(){SourceName="其他",TargetName="厂家自送"}, 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 16/31] =?UTF-8?q?1.=E6=96=B0=E6=9C=8D=E5=8A=A1=E5=8D=95?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=202.=E5=BF=AB=E9=80=92100?= =?UTF-8?q?=E6=8E=A8=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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [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 } From 4104db139b609c9a901eb9b47ef485050adc4b31 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Mar 2023 13:04:28 +0800 Subject: [PATCH 24/31] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ServiceOrderController.cs | 10 +++++++++ .../ServiceOrder/ServiceOrderBusiness.cs | 21 +++++++++++++++++++ .../EditQueryServiceOrderRequest.cs | 21 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 BBWY.Server.Model/Dto/Request/ServiceOrder/EditQueryServiceOrderRequest.cs diff --git a/BBWY.Server.API/Controllers/ServiceOrderController.cs b/BBWY.Server.API/Controllers/ServiceOrderController.cs index c1899794..70816bad 100644 --- a/BBWY.Server.API/Controllers/ServiceOrderController.cs +++ b/BBWY.Server.API/Controllers/ServiceOrderController.cs @@ -24,5 +24,15 @@ namespace BBWY.Server.API.Controllers { return serviceOrderBusiness.GetList(request); } + + /// + /// 修改服务单 + /// + /// + [HttpPost] + public void EditServiceOrder([FromBody] EditQueryServiceOrderRequest request) + { + serviceOrderBusiness.EditServiceOrder(request); + } } } diff --git a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs index 2bc6ff3d..cdf102be 100644 --- a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs +++ b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs @@ -70,5 +70,26 @@ namespace BBWY.Server.Business Items = list }; } + + public void EditServiceOrder(EditQueryServiceOrderRequest request) + { + + + fsql.Transaction(() => + { + fsql.Update(request.ServicePId).Set(s => s.ServiceResult, request.ServiceResult) + .Set(s => s.SDRefundFreight, request.SDRefundFreight) + .Set(s => s.ReturnDirection, request.ReturnDirection) + .Set(s => s.RenewalOrderId, request.RenewalOrderId) + .Set(s => s.ReissueAfterSaleAmount, request.ReissueAfterSaleAmount) + .Set(s => s.ReturnCheckRemark, request.ReturnCheckRemark) + .Set(s => s.RenewalType, request.RenewalType) + .Set(s => s.RenewalPurchaseOrderId, request.RenewalPurchaseOrderId) + .Set(s => s.RenewalPurchasePlatform, request.RenewalPurchasePlatform) + .Set(s => s.ReissueFreight, request.ReissueFreight) + .Set(s => s.ReissueProductAmount, request.ReissueProductAmount) + .ExecuteAffrows(); + }); + } } } diff --git a/BBWY.Server.Model/Dto/Request/ServiceOrder/EditQueryServiceOrderRequest.cs b/BBWY.Server.Model/Dto/Request/ServiceOrder/EditQueryServiceOrderRequest.cs new file mode 100644 index 00000000..24ddcdf4 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/ServiceOrder/EditQueryServiceOrderRequest.cs @@ -0,0 +1,21 @@ +namespace BBWY.Server.Model.Dto +{ + public class EditQueryServiceOrderRequest + { + public long ServicePId { get; set; } + + public string OrderId { get; set; } + + public Enums.ServiceResult? ServiceResult { get; set; } + public decimal? SDRefundFreight { get; set; } + public Enums.ReturnDirection? ReturnDirection { get; set; } + public string RenewalOrderId { get; set; } + public decimal? ReissueAfterSaleAmount { get; set; } + public string ReturnCheckRemark { get; set; } + public Enums.StorageType? RenewalType { get; set; } + public string RenewalPurchaseOrderId { get; set; } + public Enums.Platform? RenewalPurchasePlatform { get; set; } + public decimal? ReissueFreight { get; set; } + public decimal? ReissueProductAmount { get; set; } + } +} 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 25/31] =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=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); + }); } } } From f7f78c3234403cebd699c2a841baa05dacdddb9c Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Mar 2023 16:46:26 +0800 Subject: [PATCH 26/31] 1 --- .../ServiceOrder/ServiceOrderItemResponse.cs | 2 + .../ViewModels/Order/OrderListViewModel.cs | 274 +++++++++--------- BBWY.Client/Views/Order/OrderList.xaml | 38 ++- BBWY.Client/Views/Order/OrderList.xaml.cs | 12 +- .../ServiceOrder/EditServiceOrder.xaml.cs | 7 +- .../Views/ServiceOrder/ServiceOrderList.xaml | 2 +- .../ServiceOrder/ServiceOrderBusiness.cs | 31 +- .../ServiceOrder/ServiceOrderItemResponse.cs | 4 + 8 files changed, 191 insertions(+), 179 deletions(-) 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 From a5aac066cb05efa2bd856536a182f6b6ca21a864 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Mar 2023 17:17:05 +0800 Subject: [PATCH 27/31] =?UTF-8?q?=E5=BF=AB=E9=80=92100=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E5=B7=B2=E5=85=A5=E5=BA=93=E8=A1=A5?= =?UTF-8?q?=E9=BD=90=E7=AD=BE=E6=94=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index d31d0278..b7f7f67a 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -514,15 +514,24 @@ huitongkuaidi 百世快递 if (expressOrder == null) throw new Exception($"快递单号{waybillNo} 未找到对应的快递单"); - if (expressOrder.TransportStatus == Enums.TransportState.已入库) //已入库 + + DateTime? signTime = null; + if (expressOrder.TransportStatus == Enums.TransportState.已入库) + { + if (expressOrder.SignTime == null) + { + signTime = GetSignTime(jobject); + fsql.Update(expressOrder.Id).Set(e => e.SignTime, signTime) + .Set(e => e.UpdateTime, DateTime.Now) + .ExecuteAffrows(); + } return; - - IUpdate updateExpressOrder = null; - List> updateServiceOrderList = new List>(); + } var isUpdate = false; Enums.TransportState? newStatus = null; - DateTime? signTime = null; + IUpdate updateExpressOrder = null; + List> updateServiceOrderList = new List>(); if (kuaiDi100PushStateList_zaitu.Contains(state) || kuaiDi100PushStateList_lanshou.Contains(state)) { @@ -539,10 +548,7 @@ huitongkuaidi 百世快递 { isUpdate = true; newStatus = Enums.TransportState.待质检; - - var data = jobject["lastResult"]["data"].Children().FirstOrDefault(d => kuaiDi100PushStateList_qianshou.Contains(d.Value("statusCode"))); - if (data != null) - signTime = DateTime.Parse(data.Value("ftime")); + signTime = GetSignTime(jobject); } } else if (kuaiDi100PushStateList_paijian.Contains(state)) @@ -573,5 +579,14 @@ huitongkuaidi 百世快递 }); } } + + public DateTime? GetSignTime(JObject jobject) + { + DateTime? signTime = null; + var data = jobject["lastResult"]["data"].Children().FirstOrDefault(d => kuaiDi100PushStateList_qianshou.Contains(d.Value("statusCode"))); + if (data != null) + signTime = DateTime.Parse(data.Value("ftime")); + return signTime; + } } } From dfc5ea2e7c5f031fb5614aea922fa350fa4618de Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Mar 2023 17:17:58 +0800 Subject: [PATCH 28/31] =?UTF-8?q?=E5=BF=AB=E9=80=92100=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E5=B7=B2=E5=85=A5=E5=BA=93=E8=A1=A5?= =?UTF-8?q?=E9=BD=90=E7=AD=BE=E6=94=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index b7f7f67a..d43714d0 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -514,11 +514,11 @@ huitongkuaidi 百世快递 if (expressOrder == null) throw new Exception($"快递单号{waybillNo} 未找到对应的快递单"); - + DateTime? signTime = null; if (expressOrder.TransportStatus == Enums.TransportState.已入库) { - if (expressOrder.SignTime == null) + if (kuaiDi100PushStateList_qianshou.Contains(state) && expressOrder.SignTime == null) { signTime = GetSignTime(jobject); fsql.Update(expressOrder.Id).Set(e => e.SignTime, signTime) From 14c00d7a306ee24d77922c7ab441398e4dd6b429 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Mar 2023 17:22:18 +0800 Subject: [PATCH 29/31] 10085 --- BBWY.Client/Views/MainWindow.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/Views/MainWindow.xaml b/BBWY.Client/Views/MainWindow.xaml index 633342e0..f7e9201a 100644 --- a/BBWY.Client/Views/MainWindow.xaml +++ b/BBWY.Client/Views/MainWindow.xaml @@ -26,7 +26,7 @@ - + From 36c81e27dbbc8c179ba7d452ff37eb2e54c2ea7d Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Wed, 29 Mar 2023 17:53:03 +0800 Subject: [PATCH 30/31] 1 --- .../ViewModels/ServiceOrder/ServiceOrderViewModel.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs index bfab5935..b286832e 100644 --- a/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs +++ b/BBWY.Client/ViewModels/ServiceOrder/ServiceOrderViewModel.cs @@ -159,10 +159,10 @@ namespace BBWY.Client.ViewModels { #region Test //转换ImageName - if (int.Parse(s.ServiceId) % 2 == 0) - { - s.ProductPackage = ProductPackage.新; s.ImageName = "20230317071208762563,8d58b491-7859-4187-9f43-4fd177a0f25f,b0df0763-9cf4-40ca-a1fc-57695e4b8d33"; - } + //if (int.Parse(s.ServiceId) % 2 == 0) + //{ + // s.ProductPackage = ProductPackage.新; s.ImageName = "20230317071208762563,8d58b491-7859-4187-9f43-4fd177a0f25f,b0df0763-9cf4-40ca-a1fc-57695e4b8d33"; + //} #endregion s.Init(); From ec5da9f2ba6f975cd0daeb48cbb0f9f8a769badf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=9E=E5=9D=A4=20=E6=9E=97?= <506583276@qq.com> Date: Wed, 29 Mar 2023 20:29:26 +0800 Subject: [PATCH 31/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Models/PackTask/ConsumableModel.cs | 21 ++++++++++++++++--- BBWY.Client/Models/PackTask/PackTaskModel.cs | 8 +++++-- .../PackTask/ConsumableViewModel.cs | 2 +- BBWY.Client/Views/PackTask/Consumable.xaml | 2 +- .../Views/PackTask/PrintWindow.xaml.cs | 10 +++------ 5 files changed, 29 insertions(+), 14 deletions(-) diff --git a/BBWY.Client/Models/PackTask/ConsumableModel.cs b/BBWY.Client/Models/PackTask/ConsumableModel.cs index 3b86bab8..5437d1b1 100644 --- a/BBWY.Client/Models/PackTask/ConsumableModel.cs +++ b/BBWY.Client/Models/PackTask/ConsumableModel.cs @@ -46,7 +46,7 @@ namespace BBWY.Client.Models.PackTask return; } ApiResponse res = null; - if (Id > 0) + if (Id > 0)//修改 { res = consumableService.Edit(new ConsuableRequest { @@ -80,7 +80,11 @@ namespace BBWY.Client.Models.PackTask if (res != null && res.Success) { var win = obj as System.Windows.Window; - if (ReflashDatas != null) ReflashDatas(); + + ViewModelLocator viewModel = new ViewModelLocator(); + var con = viewModel.Consumable; + con.SearchConsumable(); + //if (ReflashDatas != null) ReflashDatas(); win.Close(); } else @@ -94,6 +98,9 @@ namespace BBWY.Client.Models.PackTask var res = consumableService.Deleted(Id); if (res.Success) { + ViewModelLocator viewModel = new ViewModelLocator(); + var con = viewModel.Consumable; + con.SearchConsumable(); list.Remove(this); } } @@ -102,7 +109,15 @@ namespace BBWY.Client.Models.PackTask public void EditConsumable() { - EditConsumable add = new EditConsumable(this); + EditConsumable add = new EditConsumable(new ConsumableModel(consumableService) { + Heigth=this.Heigth, Length=this.Length, + Id=this.Id, Name=this.Name, Weigth=this.Weigth, + Remark = this.Remark, + Width = this.Width , + Price = this.Price + + }); + add.Show(); } diff --git a/BBWY.Client/Models/PackTask/PackTaskModel.cs b/BBWY.Client/Models/PackTask/PackTaskModel.cs index d52e40e4..5f988637 100644 --- a/BBWY.Client/Models/PackTask/PackTaskModel.cs +++ b/BBWY.Client/Models/PackTask/PackTaskModel.cs @@ -45,7 +45,7 @@ namespace BBWY.Client.Models public ICommand UpdateTaskCommand { get; set; } /// - /// 修改任务 + /// 删除任务 /// public ICommand DeletedTaskCommand { get; set; } @@ -208,8 +208,12 @@ namespace BBWY.Client.Models var model = packTaskService.UpdateTaskStatus(taskId, 1); if (model != null && model.Success) { + + ViewModelLocator viewModelLocator = new ViewModelLocator(); + var wareHouse = viewModelLocator.WareHouseList; + wareHouse.SearchTaskList(); this.TaskStatus = TaskStateType.已完成; - new TipsWindow("修改成功").Show(); + // new TipsWindow("修改成功").Show(); } } /* diff --git a/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs b/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs index 24c90e2c..9ffbed11 100644 --- a/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs @@ -82,7 +82,7 @@ namespace BBWY.Client.ViewModels.PackTask } - private void SearchConsumable() + public void SearchConsumable() { Task.Factory.StartNew(() => { diff --git a/BBWY.Client/Views/PackTask/Consumable.xaml b/BBWY.Client/Views/PackTask/Consumable.xaml index 747cc362..14ce767d 100644 --- a/BBWY.Client/Views/PackTask/Consumable.xaml +++ b/BBWY.Client/Views/PackTask/Consumable.xaml @@ -155,7 +155,7 @@ - + diff --git a/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs b/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs index b1219dc4..66490a03 100644 --- a/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs +++ b/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs @@ -145,15 +145,11 @@ namespace BBWY.Client.Views.PackTask private void BButton_Click(object sender, RoutedEventArgs e) { - + int printCount = Convert.ToInt32(tbCount.Text); + string printName = cbPrints.Text;//选择的要打印的打印机名称 Task.Factory.StartNew(() => { try - { - //string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); - //string path = appPath + $"/Resources/LabelNames/{LabelName}.btw"; - - int printCount = Convert.ToInt32(tbCount.Text);//份数 - string printName = cbPrints.Text;//选择的要打印的打印机名称 + { PrintDocument pd = new PrintDocument(); PrintDocument document = new PrintDocument(); document.PrinterSettings.PrinterName = printName;