|
|
@ -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 dbServiceOrderList = fsql.Select<ServiceOrder>().Where(s => s.ShopId == shop.ShopId && serviceIdList.Contains(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) |
|
|
|
{ |
|
|
|
var serviceId = serviceOrderJToken.Value<string>("serviceId"); |
|
|
|
var status = serviceOrderJToken.Value<int>("sserviceOrderJToken"); |
|
|
|
var dbServiceOrder = dbServiceOrderList.FirstOrDefault(s => s.ServiceId == serviceId); |
|
|
|
if (dbServiceOrder == null) |
|
|
|
{ |
|
|
@ -124,13 +68,39 @@ namespace BBWY.Server.Business.Sync |
|
|
|
continue; |
|
|
|
var isNeedSubscribeKuaiDi100 = false; |
|
|
|
|
|
|
|
#region 待收货服务单,检查是否需要订阅快递100
|
|
|
|
if (status == 10005) |
|
|
|
{ |
|
|
|
if (dbOsku.StorageType == Enums.StorageType.代发) |
|
|
|
isNeedSubscribeKuaiDi100 = true; |
|
|
|
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() |
|
|
|
{ |
|
|
@ -140,7 +110,7 @@ namespace BBWY.Server.Business.Sync |
|
|
|
ShopId = shop.ShopId, |
|
|
|
ProductId = dbOsku.ProductId, |
|
|
|
SkuItemCount = dbOsku.ItemTotal, |
|
|
|
Status = serviceOrderJToken.Value<int>("sserviceOrderJToken"), |
|
|
|
Status = status, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
SkuId = skuId, |
|
|
|
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) |
|
|
|
{ |
|
|
|