From f6d94bb099d7b8e8cad95781d9cbd6d01bfb3c58 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 28 Mar 2023 13:18:27 +0800 Subject: [PATCH] 1 --- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 54 ++++++++++++++----- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index 77df46ea..23e81a4a 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -24,6 +24,8 @@ namespace BBWY.Server.Business.Sync private IList kuaiDi100PushStateList_lanshou; private IList kuaiDi100PushStateList_qianshou; private IList kuaiDi100PushStateList_paijian; + private Dictionary processResultDic; + 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) { @@ -81,6 +83,15 @@ huitongkuaidi 百世快递 new LogisticsCompanyRelationship(){ SourceName="百世快递",TargetName="百世快递",TargetCode="huitongkuaidi"}, new LogisticsCompanyRelationship(){ SourceName="百世快运",TargetName="百世快递",TargetCode="huitongkuaidi"}, }; + + processResultDic = new Dictionary() + { + { 23,Enums.ServiceResult.换新}, + { 40,Enums.ServiceResult.退货}, + { 60,Enums.ServiceResult.原返}, + { 90,Enums.ServiceResult.线下换新}, + { 110,Enums.ServiceResult.商品补发} + }; } public void SyncServiceOrder() @@ -114,17 +125,24 @@ huitongkuaidi 百世快递 var exceptServiceIdList = serviceIdList.Except(dbServiceIdList); 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) => o.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId) && osku.Price != 0) - .ToList((osku, o) => new - { - osku.Id, - osku.ProductId, - osku.SkuId, - osku.OrderId, - osku.ItemTotal, - o.StorageType - }); + var dbOrderSkuList = fsql.Select() + .InnerJoin((osku, o, ocd, po) => osku.OrderId == o.Id) + .LeftJoin((osku, o, ocd, po) => osku.OrderId == ocd.OrderId && osku.SkuId == ocd.SkuId) + .LeftJoin((osku, o, ocd, po) => ocd.PurchaseOrderPKId == po.Id) + .Where((osku, o, ocd, po) => o.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId) && osku.Price != 0) + .ToList((osku, o, ocd, po) => new + { + osku.Id, + osku.ProductId, + osku.SkuId, + osku.OrderId, + osku.ItemTotal, + o.StorageType, + po.PurchasePlatform, + po.PurchaseMethod, + po.PurchaseOrderId, + ocd.PurchaseOrderPKId + }); List insertServiceOrderList = new List(); List> updateServiceOrderList = new List>(); @@ -144,7 +162,7 @@ huitongkuaidi 百世快递 continue; var isNeedSubscribeKuaiDi100 = false; var isTuiHuoCang = false; - + Enums.ServiceResult? serviceResult = null; #region 待收货服务单,检查是否需要订阅快递100 if (status == Enums.ServiceOrderState.待收货) { @@ -167,6 +185,10 @@ huitongkuaidi 百世快递 if (!serviceOrderDetailResponse.Success) throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}"); + var processResult = serviceOrderDetailResponse.Data.Value("processResult"); + if (processResultDic.ContainsKey(processResult)) + serviceResult = processResultDic[processResult]; + //检查退货城市是否为泉州鲤城区 isNeedSubscribeKuaiDi100 = (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value("cityCode") ?? 0) == 1332 && (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value("countyCode") ?? 0) == 42930; @@ -194,6 +216,12 @@ huitongkuaidi 百世快递 IsSubscribeKuaiDi100 = false, IsNeedSubscribeKuaiDi100 = isNeedSubscribeKuaiDi100, ApplyTime = serviceOrderJToken.Value("applyTime").StampToDateTime(), + ServiceResult = serviceResult, + + PurchaseMethod = dbOsku.PurchaseMethod, + PurchasePlatform = dbOsku.PurchasePlatform, + PurchaseOrderId = dbOsku.PurchaseOrderId, + PurchaseOrderPKId = dbOsku.PurchaseOrderPKId }; if (isTuiHuoCang) dbServiceOrder.ReturnDirection = 0; @@ -531,7 +559,7 @@ huitongkuaidi 百世快递 fsql.Transaction(() => { fsql.Update(expressOrder.Id).Set(e => e.TransportStatus, newStatus) - .SetIf(state == 3, e => e.SignTime, signTime) + .SetIf(kuaiDi100PushStateList_qianshou.Contains(state), e => e.SignTime, signTime) .Set(e => e.UpdateTime, DateTime.Now) .ExecuteAffrows(); //签收