shanji 2 years ago
parent
commit
79ae281ccf
  1. 146
      BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs

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

@ -34,65 +34,8 @@ namespace BBWY.Server.Business.Sync
} }
} }
private void SyncServiceOrder(ShopResponse shop, JArray jArray) private void SyncServiceOrder(ShopResponse shop, long shopId, IList<JToken> jtokenList, string relayAPIHost, string appKey, string appSecret, string token)
{ {
}
private void SyncServiceOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false)
{
/*
:
: 10001
: 10002
: 10012
: 10005
: 10011
: 10004
: 10009
: 10010
:
: 10007
:7060
:7023
线:7090
: 13000
*/
try
{
var shopId = long.Parse(shop.ShopId);
var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId);
var serviceStatusList = new List<int>() { 10005, 10011, 10010 };
#region
var request = new QueryServiceOrderRequest()
{
UpdateTimeBegin = startTime ?? DateTime.Now.Date.AddHours(-1),
UpdateTimeEnd = endTime ?? DateTime.Now,
AppKey = shop.AppKey,
AppSecret = shop.AppSecret,
AppToken = shop.AppToken,
PageIndex = 1,
PageSize = 50,
Platform = shop.PlatformId,
SaveResponseLog = true,
OrderId = orderId,
VenderId = shop.VenderId
};
List<JToken> jtokenList = new List<JToken>();
foreach (var serviceStatus in serviceStatusList)
{
request.ServiceStatus = serviceStatus;
var serviceOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderList", request, GetYunDingRequestHeader(), HttpMethod.Post);
if (serviceOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception($"获取服务单失败 {serviceOrderListApiResult.Content}");
var serviceOrderListResponse = JsonConvert.DeserializeObject<ApiResponse<JArray>>(serviceOrderListApiResult.Content);
if (!serviceOrderListResponse.Success)
throw new Exception($"获取服务单失败 {serviceOrderListResponse.Msg}");
jtokenList.AddRange(serviceOrderListResponse.Data);
}
#endregion
var serviceIdList = jtokenList.Select(j => j.Value<string>("serviceId")).ToList(); var serviceIdList = jtokenList.Select(j => j.Value<string>("serviceId")).ToList();
var dbServiceOrderList = fsql.Select<ServiceOrder>().Where(s => s.ShopId == shop.ShopId && serviceIdList.Contains(s.ServiceId)).ToList(); var dbServiceOrderList = fsql.Select<ServiceOrder>().Where(s => s.ShopId == shop.ShopId && serviceIdList.Contains(s.ServiceId)).ToList();
var dbServiceIdList = dbServiceOrderList.Select(s => s.ServiceId).ToList(); var dbServiceIdList = dbServiceOrderList.Select(s => s.ServiceId).ToList();
@ -114,6 +57,7 @@ namespace BBWY.Server.Business.Sync
foreach (var serviceOrderJToken in jtokenList) foreach (var serviceOrderJToken in jtokenList)
{ {
var serviceId = serviceOrderJToken.Value<string>("serviceId"); var serviceId = serviceOrderJToken.Value<string>("serviceId");
var status = serviceOrderJToken.Value<int>("sserviceOrderJToken");
var dbServiceOrder = dbServiceOrderList.FirstOrDefault(s => s.ServiceId == serviceId); var dbServiceOrder = dbServiceOrderList.FirstOrDefault(s => s.ServiceId == serviceId);
if (dbServiceOrder == null) if (dbServiceOrder == null)
{ {
@ -124,13 +68,39 @@ namespace BBWY.Server.Business.Sync
continue; continue;
var isNeedSubscribeKuaiDi100 = false; var isNeedSubscribeKuaiDi100 = false;
#region 待收货服务单,检查是否需要订阅快递100
if (status == 10005)
{
if (dbOsku.StorageType == Enums.StorageType.) if (dbOsku.StorageType == Enums.StorageType.)
isNeedSubscribeKuaiDi100 = true; isNeedSubscribeKuaiDi100 = true;
else else
{ {
//检查退货城市是否为泉州 try
{
var serviceOrderDetailResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderDetail", new QueryServiceOrderDetailRequest()
{
AppKey = appKey,
AppSecret = appSecret,
AppToken = token,
OrderId = serviceOrderId,
ServiceId = serviceId,
Platform = Enums.Platform.,
VenderId = shop.VenderId
}, GetYunDingRequestHeader(), HttpMethod.Post);
if (serviceOrderDetailResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception($"获取服务单详情失败 {serviceOrderDetailResult.Content}");
var serviceOrderDetailResponse = JsonConvert.DeserializeObject<ApiResponse<JToken>>(serviceOrderDetailResult.Content);
if (!serviceOrderDetailResponse.Success)
throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}");
//检查退货城市是否为泉州
isNeedSubscribeKuaiDi100 = serviceOrderDetailResponse.Data["returnWareAddress"].Value<int>("cityCode") == 2812;
} }
catch { }
}
}
#endregion
dbServiceOrder = new ServiceOrder() dbServiceOrder = new ServiceOrder()
{ {
@ -140,7 +110,7 @@ namespace BBWY.Server.Business.Sync
ShopId = shop.ShopId, ShopId = shop.ShopId,
ProductId = dbOsku.ProductId, ProductId = dbOsku.ProductId,
SkuItemCount = dbOsku.ItemTotal, SkuItemCount = dbOsku.ItemTotal,
Status = serviceOrderJToken.Value<int>("sserviceOrderJToken"), Status = status,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
SkuId = skuId, SkuId = skuId,
StatusUpdateTime = serviceOrderJToken.Value<DateTime>("updateTime"), StatusUpdateTime = serviceOrderJToken.Value<DateTime>("updateTime"),
@ -152,8 +122,62 @@ namespace BBWY.Server.Business.Sync
}; };
} }
} }
}
private void SyncServiceOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false)
{
/*
:
: 10001
: 10002
: 10012
: 10005
: 10011
: 10004
: 10009
: 10010
:
: 10007
:7060
:7023
线:7090
: 13000
*/
try
{
var shopId = long.Parse(shop.ShopId);
var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId);
var serviceStatusList = new List<int>() { 10005, 10011, 10010 };
var request = new QueryServiceOrderRequest()
{
UpdateTimeBegin = startTime ?? DateTime.Now.Date.AddHours(-1),
UpdateTimeEnd = endTime ?? DateTime.Now,
AppKey = shop.AppKey,
AppSecret = shop.AppSecret,
AppToken = shop.AppToken,
PageIndex = 1,
PageSize = 50,
Platform = shop.PlatformId,
SaveResponseLog = true,
OrderId = orderId,
VenderId = shop.VenderId
};
List<JToken> jtokenList = new List<JToken>();
foreach (var serviceStatus in serviceStatusList)
{
request.ServiceStatus = serviceStatus;
var serviceOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderList", request, GetYunDingRequestHeader(), HttpMethod.Post);
if (serviceOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception($"获取服务单失败 {serviceOrderListApiResult.Content}");
var serviceOrderListResponse = JsonConvert.DeserializeObject<ApiResponse<JArray>>(serviceOrderListApiResult.Content);
if (!serviceOrderListResponse.Success)
throw new Exception($"获取服务单失败 {serviceOrderListResponse.Msg}");
jtokenList.AddRange(serviceOrderListResponse.Data);
}
//SyncServiceOrder(shop, serviceOrderListResponse.Data); SyncServiceOrder(shop, shopId, jtokenList, relayAPIHost, request.AppKey, request.AppSecret, request.AppToken);
} }
catch (Exception ex) catch (Exception ex)
{ {

Loading…
Cancel
Save