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

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

@ -117,7 +117,6 @@ huitongkuaidi 百世快递
}); });
List<ServiceOrder> insertServiceOrderList = new List<ServiceOrder>(); List<ServiceOrder> insertServiceOrderList = new List<ServiceOrder>();
List<ExpressOrder> insertExpressOrderList = new List<ExpressOrder>();
List<IUpdate<ServiceOrder>> updateServiceOrderList = new List<IUpdate<ServiceOrder>>(); List<IUpdate<ServiceOrder>> updateServiceOrderList = new List<IUpdate<ServiceOrder>>();
foreach (var serviceOrderJToken in jtokenList) foreach (var serviceOrderJToken in jtokenList)
@ -187,23 +186,6 @@ huitongkuaidi 百世快递
TransportDetails = 0 TransportDetails = 0
}; };
insertServiceOrderList.Add(dbServiceOrder); 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) else if (dbServiceOrder.Status != status)
{ {
@ -217,8 +199,6 @@ huitongkuaidi 百世快递
{ {
if (insertServiceOrderList.Count() > 0) if (insertServiceOrderList.Count() > 0)
fsql.Insert(insertServiceOrderList).ExecuteAffrows(); fsql.Insert(insertServiceOrderList).ExecuteAffrows();
if (insertExpressOrderList.Count() > 0)
fsql.Insert(insertExpressOrderList).ExecuteAffrows();
if (updateServiceOrderList.Count() > 0) if (updateServiceOrderList.Count() > 0)
foreach (var update in updateServiceOrderList) foreach (var update in updateServiceOrderList)
update.ExecuteAffrows(); update.ExecuteAffrows();
@ -319,30 +299,19 @@ huitongkuaidi 百世快递
try try
{ {
var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId);
var serviceOrderList = fsql.Select<ServiceOrder, ExpressOrder>().InnerJoin((s, e) => s.ServiceId == e.ServiceId) var serviceOrderList = fsql.Select<ServiceOrder>().Where(s => s.ShopId == shop.Id &&
.Where((s, e) => s.ShopId == shop.Id &&
s.IsNeedSubscribeKuaiDi100 == true && s.IsNeedSubscribeKuaiDi100 == true &&
s.IsSubscribeKuaiDi100 == false) s.IsSubscribeKuaiDi100 == false)
.OrderByDescending((s, e) => s.StatusUpdateTime) .OrderByDescending(s => s.StatusUpdateTime)
.Page(1, 50) .Page(1, 50)
.ToList((s, e) => new .ToList();
{
ServiceOrderPId = s.Id,
ExpressOrderPId = e.Id,
OrderId = s.OrderId,
ServiceId = s.ServiceId,
WaybillNo = e.WayBillNo,
ExpressName = e.ExpressName
});
List<IUpdate<ServiceOrder>> updateSerivceOrderList = new List<IUpdate<ServiceOrder>>(); 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) foreach (var serviceOrder in serviceOrderList)
{ {
bool isUpdateDelivery = false, isUpdateSubscribe = false; bool isUpdateDelivery = false, isUpdateSubscribe = false;
string waybillNo = serviceOrder.WaybillNo; if (string.IsNullOrEmpty(serviceOrder.WayBillNo) || string.IsNullOrEmpty(serviceOrder.ExpressName))
string expressName = serviceOrder.ExpressName;
if (string.IsNullOrEmpty(waybillNo) || string.IsNullOrEmpty(expressName))
{ {
try try
@ -367,10 +336,10 @@ huitongkuaidi 百世快递
if (serviceOrderDeliveryResponse.Data != null) if (serviceOrderDeliveryResponse.Data != null)
{ {
waybillNo = serviceOrderDeliveryResponse.Data.Value<string>("expressCode"); serviceOrder.WayBillNo = serviceOrderDeliveryResponse.Data.Value<string>("expressCode");
expressName = serviceOrderDeliveryResponse.Data.Value<string>("expressCompany"); serviceOrder.ExpressName = serviceOrderDeliveryResponse.Data.Value<string>("expressCompany");
isUpdateDelivery = !string.IsNullOrEmpty(waybillNo) && !string.IsNullOrEmpty(expressName); isUpdateDelivery = !string.IsNullOrEmpty(serviceOrder.WayBillNo) && !string.IsNullOrEmpty(serviceOrder.ExpressName);
} }
#endregion #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 #region 订阅快递100
try try
{ {
var kuaidi100CompanyCode = ConvertToKuaiDi100CompanyCode(expressName); var kuaidi100CompanyCode = ConvertToKuaiDi100CompanyCode(serviceOrder.ExpressName);
var subscribeResult = restApiService.SendRequest("https://poll.kuaidi100.com", "poll", JsonConvert.SerializeObject(new var subscribeResult = restApiService.SendRequest("https://poll.kuaidi100.com", "poll", JsonConvert.SerializeObject(new
{ {
schema = "json", schema = "json",
param = new param = new
{ {
company = kuaidi100CompanyCode, company = kuaidi100CompanyCode,
number = waybillNo, number = serviceOrder.WayBillNo,
key = "SdcRPzxo8802", key = "SdcRPzxo8802",
parameters = new parameters = new
{ {
@ -416,32 +385,39 @@ huitongkuaidi 百世快递
} }
#endregion #endregion
} }
if (isUpdateSubscribe || isUpdateDelivery)
{
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) if (isUpdateDelivery)
{ {
var update = fsql.Update<ExpressOrder>(serviceOrder.ExpressOrderPId).SetIf(isUpdateDelivery, e => e.WayBillNo, waybillNo) insertExpressOrderList.Add(new ExpressOrder()
.SetIf(isUpdateDelivery, e => e.ExpressName, expressName);
updateExpressOrderList.Add(update);
}
if (isUpdateSubscribe)
{ {
var update = fsql.Update<ServiceOrder>(serviceOrder.ServiceOrderPId).SetIf(isUpdateSubscribe, s => s.IsSubscribeKuaiDi100, true); Id = idGenerator.NewLong(),
updateSerivceOrderList.Add(update); CreateTime = DateTime.Now,
ExpressName = serviceOrder.ExpressName,
WayBillNo = serviceOrder.WayBillNo,
OrderId = serviceOrder.OrderId,
PackageType = 1,
UpdateTime = DateTime.Now
});
}
} }
} }
fsql.Transaction(() => fsql.Transaction(() =>
{ {
if (updateExpressOrderList.Count() > 0) if (insertExpressOrderList.Count() > 0)
{ fsql.Insert(insertExpressOrderList).ExecuteAffrows();
foreach (var update in updateExpressOrderList)
update.ExecuteAffrows();
}
if (updateSerivceOrderList.Count() > 0) if (updateSerivceOrderList.Count() > 0)
{
foreach (var update in updateSerivceOrderList) foreach (var update in updateSerivceOrderList)
update.ExecuteAffrows(); update.ExecuteAffrows();
}
}); });
} }
catch (Exception ex) catch (Exception ex)

Loading…
Cancel
Save