|
|
@ -7,6 +7,7 @@ using BBWY.Server.Model.Dto; |
|
|
|
using FreeSql; |
|
|
|
using Microsoft.Extensions.Options; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using Newtonsoft.Json.Linq; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
@ -517,7 +518,61 @@ namespace BBWY.Server.Business |
|
|
|
if (!string.IsNullOrEmpty(dbPromotionTask.MainProductSku)) |
|
|
|
CheckRepeatSkuInRuningTask(runingTaskList, dbPromotionTask.MainProductSku); |
|
|
|
|
|
|
|
|
|
|
|
var host = GetPlatformRelayAPIHost(Enums.Platform.京东); |
|
|
|
var haveGiftTemplateSku = giftTemplateSkuList != null && giftTemplateSkuList.Count() > 0; |
|
|
|
string barCode = string.Empty, categoryId = string.Empty; |
|
|
|
IList<JToken> multiCateProps = null; |
|
|
|
var mainProductSkuInStore = false; |
|
|
|
if (haveGiftTemplateSku) |
|
|
|
{ |
|
|
|
var mainSkuResult = restApiService.SendRequest(host, "api/PlatformSDK/GetProductSkuList", new SearchProductSkuRequest() |
|
|
|
{ |
|
|
|
AppKey = request.AppKey, |
|
|
|
AppSecret = request.AppSecret, |
|
|
|
AppToken = request.AppToken, |
|
|
|
IsContainSource = true, |
|
|
|
Platform = request.Platform, |
|
|
|
Spu = dbPromotionTask.MainProductSpu |
|
|
|
}, GetYunDingRequestHeader(), HttpMethod.Post); |
|
|
|
if (mainSkuResult.StatusCode != System.Net.HttpStatusCode.OK) |
|
|
|
throw new BusinessException($"获取主商品sku失败 {mainSkuResult.Content}"); |
|
|
|
var mainSkuListResponse = JsonConvert.DeserializeObject<ApiResponse<IList<ProductSkuResponse>>>(mainSkuResult.Content); |
|
|
|
if (!mainSkuListResponse.Success) |
|
|
|
throw new BusinessException($"获取主商品sku失败 {mainSkuListResponse.Msg}"); |
|
|
|
|
|
|
|
barCode = mainSkuListResponse.Data[0].Source.Value<string>("barCode"); |
|
|
|
categoryId = mainSkuListResponse.Data[0].Source.Value<string>("categoryId"); |
|
|
|
multiCateProps = mainSkuListResponse.Data[0].Source["multiCateProps"] != null ? mainSkuListResponse.Data[0].Source["multiCateProps"].ToList() : null; |
|
|
|
|
|
|
|
var jyStoreIdList = fsql.Select<Storehouse>().Where(s => s.Type == Enums.StockType.京仓 || s.Name.Contains("云仓")).ToList(s => s.Id); |
|
|
|
|
|
|
|
foreach (var sku in mainSkuListResponse.Data) |
|
|
|
{ |
|
|
|
var stockNumApiResult = restApiService.SendRequest(host, "api/platformsdk/GetStockNumBySku", new SearchProductSkuRequest() |
|
|
|
{ |
|
|
|
AppKey = shop.AppKey, |
|
|
|
AppSecret = shop.AppSecret, |
|
|
|
AppToken = shop.AppToken, |
|
|
|
Platform = shop.PlatformId, |
|
|
|
Sku = sku.Id |
|
|
|
}, GetYunDingRequestHeader(), HttpMethod.Post); |
|
|
|
if (stockNumApiResult.StatusCode != System.Net.HttpStatusCode.OK) |
|
|
|
throw new Exception($"{sku} {stockNumApiResult.Content}"); |
|
|
|
var stockNumListResponse = JsonConvert.DeserializeObject<ApiResponse<JArray>>(stockNumApiResult.Content); |
|
|
|
|
|
|
|
var skuStockNumList = stockNumListResponse.Data.Select(j => new |
|
|
|
{ |
|
|
|
StockNum = j.Value<int>("stockNum"), |
|
|
|
StoreId = j.Value<string>("storeId"), |
|
|
|
SkuId = sku |
|
|
|
}); |
|
|
|
mainProductSkuInStore = skuStockNumList.Any(s => jyStoreIdList.Contains(s.StoreId)); |
|
|
|
if (mainProductSkuInStore) |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var httpApiResult = restApiService.SendRequest(host, "api/PlatformSDK/StartJDPromotionTask", new StartPromotionTaskRequest2() |
|
|
|
{ |
|
|
|
Id = dbPromotionTask.Id, |
|
|
@ -535,7 +590,12 @@ namespace BBWY.Server.Business |
|
|
|
MainProductSpu = dbPromotionTask.MainProductSpu, |
|
|
|
Platform = Enums.Platform.京东, |
|
|
|
ShopId = dbPromotionTask.ShopId.Value, |
|
|
|
TaskCount = dbPromotionTask.TaskCount |
|
|
|
TaskCount = dbPromotionTask.TaskCount, |
|
|
|
MainProductBarCode = barCode, |
|
|
|
MainProductCategoryId = categoryId, |
|
|
|
MainProductMultiCateProps = multiCateProps, |
|
|
|
MainProductSkuInStore = mainProductSkuInStore |
|
|
|
|
|
|
|
}, GetYunDingRequestHeader(), HttpMethod.Post); |
|
|
|
|
|
|
|
if (httpApiResult.StatusCode != System.Net.HttpStatusCode.OK) |
|
|
|