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/20] 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/20] =?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/20] 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/20] 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/20] =?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/20] =?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/20] 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/20] =?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/20] =?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/20] =?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/20] =?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/20] 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/20] =?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/20] =?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/20] =?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/20] =?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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +