From b435fd1f2a3621406569333d8108c78887c182de Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 21 Mar 2023 13:41:35 +0800 Subject: [PATCH] 1 --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 90 +++++++------------ 1 file changed, 33 insertions(+), 57 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index 814b62f3..a4fbd679 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -117,7 +117,6 @@ huitongkuaidi 百世快递 }); List insertServiceOrderList = new List(); - List insertExpressOrderList = new List(); List> updateServiceOrderList = new List>(); foreach (var serviceOrderJToken in jtokenList) @@ -187,23 +186,6 @@ huitongkuaidi 百世快递 TransportDetails = 0 }; insertServiceOrderList.Add(dbServiceOrder); - if (isNeedSubscribeKuaiDi100) - { - var expressOrder = new ExpressOrder() - { - Id = idGenerator.NewLong(), - CreateTime = DateTime.Now, - ExpressName = string.Empty, - WayBillNo = string.Empty, - OrderId = serviceOrderId, - PackageType = 1, - ServiceId = serviceId, - UpdateTime = DateTime.Now, - PurchaseOrderId = string.Empty, - TransportStatus = 0 - }; - insertExpressOrderList.Add(expressOrder); - } } else if (dbServiceOrder.Status != status) { @@ -217,8 +199,6 @@ huitongkuaidi 百世快递 { if (insertServiceOrderList.Count() > 0) fsql.Insert(insertServiceOrderList).ExecuteAffrows(); - if (insertExpressOrderList.Count() > 0) - fsql.Insert(insertExpressOrderList).ExecuteAffrows(); if (updateServiceOrderList.Count() > 0) foreach (var update in updateServiceOrderList) update.ExecuteAffrows(); @@ -319,30 +299,19 @@ huitongkuaidi 百世快递 try { var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var serviceOrderList = fsql.Select().InnerJoin((s, e) => s.ServiceId == e.ServiceId) - .Where((s, e) => s.ShopId == shop.Id && + var serviceOrderList = fsql.Select().Where(s => s.ShopId == shop.Id && s.IsNeedSubscribeKuaiDi100 == true && s.IsSubscribeKuaiDi100 == false) - .OrderByDescending((s, e) => s.StatusUpdateTime) + .OrderByDescending(s => s.StatusUpdateTime) .Page(1, 50) - .ToList((s, e) => new - { - ServiceOrderPId = s.Id, - ExpressOrderPId = e.Id, - OrderId = s.OrderId, - ServiceId = s.ServiceId, - WaybillNo = e.WayBillNo, - ExpressName = e.ExpressName - }); + .ToList(); List> updateSerivceOrderList = new List>(); - List> updateExpressOrderList = new List>(); + List insertExpressOrderList = new List(); foreach (var serviceOrder in serviceOrderList) { bool isUpdateDelivery = false, isUpdateSubscribe = false; - string waybillNo = serviceOrder.WaybillNo; - string expressName = serviceOrder.ExpressName; - if (string.IsNullOrEmpty(waybillNo) || string.IsNullOrEmpty(expressName)) + if (string.IsNullOrEmpty(serviceOrder.WayBillNo) || string.IsNullOrEmpty(serviceOrder.ExpressName)) { try @@ -367,10 +336,10 @@ huitongkuaidi 百世快递 if (serviceOrderDeliveryResponse.Data != null) { - waybillNo = serviceOrderDeliveryResponse.Data.Value("expressCode"); - expressName = serviceOrderDeliveryResponse.Data.Value("expressCompany"); + serviceOrder.WayBillNo = serviceOrderDeliveryResponse.Data.Value("expressCode"); + serviceOrder.ExpressName = serviceOrderDeliveryResponse.Data.Value("expressCompany"); - isUpdateDelivery = !string.IsNullOrEmpty(waybillNo) && !string.IsNullOrEmpty(expressName); + isUpdateDelivery = !string.IsNullOrEmpty(serviceOrder.WayBillNo) && !string.IsNullOrEmpty(serviceOrder.ExpressName); } #endregion } @@ -380,19 +349,19 @@ huitongkuaidi 百世快递 } } - if (!string.IsNullOrEmpty(serviceOrder.WaybillNo) && !string.IsNullOrEmpty(serviceOrder.ExpressName)) + if (!string.IsNullOrEmpty(serviceOrder.WayBillNo) && !string.IsNullOrEmpty(serviceOrder.ExpressName)) { #region 订阅快递100 try { - var kuaidi100CompanyCode = ConvertToKuaiDi100CompanyCode(expressName); + var kuaidi100CompanyCode = ConvertToKuaiDi100CompanyCode(serviceOrder.ExpressName); var subscribeResult = restApiService.SendRequest("https://poll.kuaidi100.com", "poll", JsonConvert.SerializeObject(new { schema = "json", param = new { company = kuaidi100CompanyCode, - number = waybillNo, + number = serviceOrder.WayBillNo, key = "SdcRPzxo8802", parameters = new { @@ -416,32 +385,39 @@ huitongkuaidi 百世快递 } #endregion } - if (isUpdateDelivery) - { - var update = fsql.Update(serviceOrder.ExpressOrderPId).SetIf(isUpdateDelivery, e => e.WayBillNo, waybillNo) - .SetIf(isUpdateDelivery, e => e.ExpressName, expressName); - updateExpressOrderList.Add(update); - } - if (isUpdateSubscribe) + + if (isUpdateSubscribe || isUpdateDelivery) { - var update = fsql.Update(serviceOrder.ServiceOrderPId).SetIf(isUpdateSubscribe, s => s.IsSubscribeKuaiDi100, true); + var update = fsql.Update(serviceOrder.Id) + .SetIf(isUpdateDelivery, e => e.WayBillNo, serviceOrder.WayBillNo) + .SetIf(isUpdateDelivery, e => e.ExpressName, serviceOrder.ExpressName) + .SetIf(isUpdateSubscribe, s => s.IsSubscribeKuaiDi100, true); updateSerivceOrderList.Add(update); + + if (isUpdateDelivery) + { + insertExpressOrderList.Add(new ExpressOrder() + { + Id = idGenerator.NewLong(), + CreateTime = DateTime.Now, + ExpressName = serviceOrder.ExpressName, + WayBillNo = serviceOrder.WayBillNo, + OrderId = serviceOrder.OrderId, + PackageType = 1, + UpdateTime = DateTime.Now + }); + } } } fsql.Transaction(() => { - if (updateExpressOrderList.Count() > 0) - { - foreach (var update in updateExpressOrderList) - update.ExecuteAffrows(); - } + if (insertExpressOrderList.Count() > 0) + fsql.Insert(insertExpressOrderList).ExecuteAffrows(); if (updateSerivceOrderList.Count() > 0) - { foreach (var update in updateSerivceOrderList) update.ExecuteAffrows(); - } }); } catch (Exception ex)