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

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

@ -117,7 +117,6 @@ huitongkuaidi 百世快递
});
List<ServiceOrder> insertServiceOrderList = new List<ServiceOrder>();
List<ExpressOrder> insertExpressOrderList = new List<ExpressOrder>();
List<IUpdate<ServiceOrder>> updateServiceOrderList = new List<IUpdate<ServiceOrder>>();
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<ServiceOrder, ExpressOrder>().InnerJoin((s, e) => s.ServiceId == e.ServiceId)
.Where((s, e) => s.ShopId == shop.Id &&
var serviceOrderList = fsql.Select<ServiceOrder>().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<IUpdate<ServiceOrder>> updateSerivceOrderList = new List<IUpdate<ServiceOrder>>();
List<IUpdate<ExpressOrder>> updateExpressOrderList = new List<IUpdate<ExpressOrder>>();
List<ExpressOrder> insertExpressOrderList = new List<ExpressOrder>();
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<string>("expressCode");
expressName = serviceOrderDeliveryResponse.Data.Value<string>("expressCompany");
serviceOrder.WayBillNo = serviceOrderDeliveryResponse.Data.Value<string>("expressCode");
serviceOrder.ExpressName = serviceOrderDeliveryResponse.Data.Value<string>("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<ExpressOrder>(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>(serviceOrder.ServiceOrderPId).SetIf(isUpdateSubscribe, s => s.IsSubscribeKuaiDi100, true);
var update = fsql.Update<ServiceOrder>(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)

Loading…
Cancel
Save