shanji 2 years ago
parent
commit
f6d94bb099
  1. 54
      BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs

54
BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs

@ -24,6 +24,8 @@ namespace BBWY.Server.Business.Sync
private IList<int> kuaiDi100PushStateList_lanshou; private IList<int> kuaiDi100PushStateList_lanshou;
private IList<int> kuaiDi100PushStateList_qianshou; private IList<int> kuaiDi100PushStateList_qianshou;
private IList<int> kuaiDi100PushStateList_paijian; private IList<int> kuaiDi100PushStateList_paijian;
private Dictionary<int, Enums.ServiceResult> processResultDic;
public JDServiceOrderSyncBusiness(RestApiService restApiService, IOptions<GlobalConfig> options, NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, yunDingBusiness) public JDServiceOrderSyncBusiness(RestApiService restApiService, IOptions<GlobalConfig> 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"},
new LogisticsCompanyRelationship(){ SourceName="百世快运",TargetName="百世快递",TargetCode="huitongkuaidi"}, new LogisticsCompanyRelationship(){ SourceName="百世快运",TargetName="百世快递",TargetCode="huitongkuaidi"},
}; };
processResultDic = new Dictionary<int, Enums.ServiceResult>()
{
{ 23,Enums.ServiceResult.},
{ 40,Enums.ServiceResult.退},
{ 60,Enums.ServiceResult.},
{ 90,Enums.ServiceResult.线},
{ 110,Enums.ServiceResult.}
};
} }
public void SyncServiceOrder() public void SyncServiceOrder()
@ -114,17 +125,24 @@ huitongkuaidi 百世快递
var exceptServiceIdList = serviceIdList.Except(dbServiceIdList); var exceptServiceIdList = serviceIdList.Except(dbServiceIdList);
var apiOrderIdList = jtokenList.Where(j => exceptServiceIdList.Contains(j.Value<string>("serviceId"))).Select(j => j.Value<string>("orderId")).ToList(); var apiOrderIdList = jtokenList.Where(j => exceptServiceIdList.Contains(j.Value<string>("serviceId"))).Select(j => j.Value<string>("orderId")).ToList();
var dbOrderSkuList = fsql.Select<OrderSku, Order>().InnerJoin((osku, o) => osku.OrderId == o.Id) var dbOrderSkuList = fsql.Select<OrderSku, Order, OrderCostDetail, PurchaseOrder>()
.Where((osku, o) => o.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId) && osku.Price != 0) .InnerJoin((osku, o, ocd, po) => osku.OrderId == o.Id)
.ToList((osku, o) => new .LeftJoin((osku, o, ocd, po) => osku.OrderId == ocd.OrderId && osku.SkuId == ocd.SkuId)
{ .LeftJoin((osku, o, ocd, po) => ocd.PurchaseOrderPKId == po.Id)
osku.Id, .Where((osku, o, ocd, po) => o.ShopId == shopId && apiOrderIdList.Contains(osku.OrderId) && osku.Price != 0)
osku.ProductId, .ToList((osku, o, ocd, po) => new
osku.SkuId, {
osku.OrderId, osku.Id,
osku.ItemTotal, osku.ProductId,
o.StorageType osku.SkuId,
}); osku.OrderId,
osku.ItemTotal,
o.StorageType,
po.PurchasePlatform,
po.PurchaseMethod,
po.PurchaseOrderId,
ocd.PurchaseOrderPKId
});
List<ServiceOrder> insertServiceOrderList = new List<ServiceOrder>(); List<ServiceOrder> insertServiceOrderList = new List<ServiceOrder>();
List<IUpdate<ServiceOrder>> updateServiceOrderList = new List<IUpdate<ServiceOrder>>(); List<IUpdate<ServiceOrder>> updateServiceOrderList = new List<IUpdate<ServiceOrder>>();
@ -144,7 +162,7 @@ huitongkuaidi 百世快递
continue; continue;
var isNeedSubscribeKuaiDi100 = false; var isNeedSubscribeKuaiDi100 = false;
var isTuiHuoCang = false; var isTuiHuoCang = false;
Enums.ServiceResult? serviceResult = null;
#region 待收货服务单,检查是否需要订阅快递100 #region 待收货服务单,检查是否需要订阅快递100
if (status == Enums.ServiceOrderState.) if (status == Enums.ServiceOrderState.)
{ {
@ -167,6 +185,10 @@ huitongkuaidi 百世快递
if (!serviceOrderDetailResponse.Success) if (!serviceOrderDetailResponse.Success)
throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}"); throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}");
var processResult = serviceOrderDetailResponse.Data.Value<int>("processResult");
if (processResultDic.ContainsKey(processResult))
serviceResult = processResultDic[processResult];
//检查退货城市是否为泉州鲤城区 //检查退货城市是否为泉州鲤城区
isNeedSubscribeKuaiDi100 = (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value<int>("cityCode") ?? 0) == 1332 && isNeedSubscribeKuaiDi100 = (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value<int>("cityCode") ?? 0) == 1332 &&
(serviceOrderDetailResponse.Data["afsContactInfo"]?.Value<int>("countyCode") ?? 0) == 42930; (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value<int>("countyCode") ?? 0) == 42930;
@ -194,6 +216,12 @@ huitongkuaidi 百世快递
IsSubscribeKuaiDi100 = false, IsSubscribeKuaiDi100 = false,
IsNeedSubscribeKuaiDi100 = isNeedSubscribeKuaiDi100, IsNeedSubscribeKuaiDi100 = isNeedSubscribeKuaiDi100,
ApplyTime = serviceOrderJToken.Value<long>("applyTime").StampToDateTime(), ApplyTime = serviceOrderJToken.Value<long>("applyTime").StampToDateTime(),
ServiceResult = serviceResult,
PurchaseMethod = dbOsku.PurchaseMethod,
PurchasePlatform = dbOsku.PurchasePlatform,
PurchaseOrderId = dbOsku.PurchaseOrderId,
PurchaseOrderPKId = dbOsku.PurchaseOrderPKId
}; };
if (isTuiHuoCang) if (isTuiHuoCang)
dbServiceOrder.ReturnDirection = 0; dbServiceOrder.ReturnDirection = 0;
@ -531,7 +559,7 @@ huitongkuaidi 百世快递
fsql.Transaction(() => fsql.Transaction(() =>
{ {
fsql.Update<ExpressOrder>(expressOrder.Id).Set(e => e.TransportStatus, newStatus) fsql.Update<ExpressOrder>(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) .Set(e => e.UpdateTime, DateTime.Now)
.ExecuteAffrows(); //签收 .ExecuteAffrows(); //签收

Loading…
Cancel
Save