shanji 2 years ago
parent
commit
60282efd07
  1. 4
      BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs
  2. 62
      BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
  3. 57
      BBWY.Server.Business/PlatformSDK/JDBusiness.cs
  4. 14
      BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs
  5. 55
      BBWY.Test/Program.cs

4
BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs

@ -1,5 +1,4 @@
using BBWY.Common.Extensions; using BBWY.Common.Http;
using BBWY.Common.Http;
using BBWY.Common.Models; using BBWY.Common.Models;
using BBWY.Server.Model; using BBWY.Server.Model;
using BBWY.Server.Model.Db; using BBWY.Server.Model.Db;
@ -11,7 +10,6 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;

62
BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs

@ -7,6 +7,7 @@ using BBWY.Server.Model.Dto;
using FreeSql; using FreeSql;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -517,7 +518,61 @@ namespace BBWY.Server.Business
if (!string.IsNullOrEmpty(dbPromotionTask.MainProductSku)) if (!string.IsNullOrEmpty(dbPromotionTask.MainProductSku))
CheckRepeatSkuInRuningTask(runingTaskList, dbPromotionTask.MainProductSku); CheckRepeatSkuInRuningTask(runingTaskList, dbPromotionTask.MainProductSku);
var host = GetPlatformRelayAPIHost(Enums.Platform.); 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() var httpApiResult = restApiService.SendRequest(host, "api/PlatformSDK/StartJDPromotionTask", new StartPromotionTaskRequest2()
{ {
Id = dbPromotionTask.Id, Id = dbPromotionTask.Id,
@ -535,7 +590,12 @@ namespace BBWY.Server.Business
MainProductSpu = dbPromotionTask.MainProductSpu, MainProductSpu = dbPromotionTask.MainProductSpu,
Platform = Enums.Platform., Platform = Enums.Platform.,
ShopId = dbPromotionTask.ShopId.Value, ShopId = dbPromotionTask.ShopId.Value,
TaskCount = dbPromotionTask.TaskCount TaskCount = dbPromotionTask.TaskCount,
MainProductBarCode = barCode,
MainProductCategoryId = categoryId,
MainProductMultiCateProps = multiCateProps,
MainProductSkuInStore = mainProductSkuInStore
}, GetYunDingRequestHeader(), HttpMethod.Post); }, GetYunDingRequestHeader(), HttpMethod.Post);
if (httpApiResult.StatusCode != System.Net.HttpStatusCode.OK) if (httpApiResult.StatusCode != System.Net.HttpStatusCode.OK)

57
BBWY.Server.Business/PlatformSDK/JDBusiness.cs

@ -894,36 +894,36 @@ namespace BBWY.Server.Business
if (haveGiftTemplateSku) if (haveGiftTemplateSku)
{ {
#region 上架赠品 #region 上架赠品
string barCode = string.Empty, categoryId = string.Empty; //string barCode = string.Empty, categoryId = string.Empty;
IList<JToken> multiCateProps = null; //IList<JToken> multiCateProps = null;
#region 获取主商品sku信息 barCode,categoryId,multiCateProps //#region 获取主商品sku信息 barCode,categoryId,multiCateProps
{ //{
stepText = "获取主商品sku信息"; // stepText = "获取主商品sku信息";
var mainSkuList = GetProductSkuList(new SearchProductSkuRequest() // var mainSkuList = GetProductSkuList(new SearchProductSkuRequest()
{ // {
AppKey = request.AppKey, // AppKey = request.AppKey,
AppSecret = request.AppSecret, // AppSecret = request.AppSecret,
AppToken = request.AppToken, // AppToken = request.AppToken,
IsContainSource = true, // IsContainSource = true,
Platform = request.Platform, // Platform = request.Platform,
Spu = request.MainProductSpu // Spu = request.MainProductSpu
}); // });
if (mainSkuList.Count() == 0) // if (mainSkuList.Count() == 0)
throw new BusinessException($"获取主商品sku信息-未查询到sku信息"); // throw new BusinessException($"获取主商品sku信息-未查询到sku信息");
barCode = mainSkuList[0].Source.Value<string>("barCode"); // barCode = mainSkuList[0].Source.Value<string>("barCode");
categoryId = mainSkuList[0].Source.Value<string>("categoryId"); // categoryId = mainSkuList[0].Source.Value<string>("categoryId");
multiCateProps = mainSkuList[0].Source["multiCateProps"] != null ? mainSkuList[0].Source["multiCateProps"].ToList() : null; // multiCateProps = mainSkuList[0].Source["multiCateProps"] != null ? mainSkuList[0].Source["multiCateProps"].ToList() : null;
} //}
#endregion //#endregion
#region 获取销售属性 #region 获取销售属性
stepText = "获取销售属性"; stepText = "获取销售属性";
IList<JToken> colorSaleAttrs = null; IList<JToken> colorSaleAttrs = null;
{ {
var req = new CategoryReadFindAttrsByCategoryIdUnlimitCateRequest(); var req = new CategoryReadFindAttrsByCategoryIdUnlimitCateRequest();
req.cid = long.Parse(categoryId); req.cid = long.Parse(request.MainProductCategoryId);
req.attributeType = 4; req.attributeType = 4;
req.field = "attrValueList,attrGroup"; req.field = "attrValueList,attrGroup";
var response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); var response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime());
@ -955,7 +955,7 @@ namespace BBWY.Server.Business
//skuId = long.Parse(sku.Id), //skuId = long.Parse(sku.Id),
jdPrice = giftSku.Price ?? 0, jdPrice = giftSku.Price ?? 0,
stockNum = 9999, stockNum = 9999,
barCode = barCode, barCode = request.MainProductBarCode,
saleAttrs = new List<SkuWriteUpdateSkusItemSaleAttrs>() saleAttrs = new List<SkuWriteUpdateSkusItemSaleAttrs>()
{ {
new SkuWriteUpdateSkusItemSaleAttrs() new SkuWriteUpdateSkusItemSaleAttrs()
@ -969,9 +969,9 @@ namespace BBWY.Server.Business
}; };
p.multiCateProps = new List<SkuWriteUpdateSkusItemSaleAttrs>(); p.multiCateProps = new List<SkuWriteUpdateSkusItemSaleAttrs>();
if (multiCateProps != null && multiCateProps.Count() > 0) if (request.MainProductMultiCateProps != null && request.MainProductMultiCateProps.Count() > 0)
{ {
foreach (var multiCateProp in multiCateProps) foreach (var multiCateProp in request.MainProductMultiCateProps)
{ {
var m = new SkuWriteUpdateSkusItemSaleAttrs(); var m = new SkuWriteUpdateSkusItemSaleAttrs();
m.type = "com.jd.pop.ware.ic.api.domain.Prop"; m.type = "com.jd.pop.ware.ic.api.domain.Prop";
@ -1059,6 +1059,8 @@ namespace BBWY.Server.Business
#endregion #endregion
#region 设置sku全国仓库存 #region 设置sku全国仓库存
{
if (request.MainProductSkuInStore)
{ {
stepText = "设置sku全国仓库存"; stepText = "设置sku全国仓库存";
try try
@ -1080,6 +1082,7 @@ namespace BBWY.Server.Business
throw ex; throw ex;
} }
} }
}
#endregion #endregion
#endregion #endregion

14
BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs

@ -1,4 +1,5 @@
using System; using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
@ -60,6 +61,17 @@ namespace BBWY.Server.Model.Dto
/// 任务量 /// 任务量
/// </summary> /// </summary>
public int TaskCount { get; set; } public int TaskCount { get; set; }
public string MainProductBarCode { get; set; }
public string MainProductCategoryId { get; set; }
public IList<JToken> MainProductMultiCateProps { get; set; }
/// <summary>
/// 主商品Sku是否入仓
/// </summary>
public bool MainProductSkuInStore { get; set; }
} }
public class StartPromotionTaskDelayRequest : PlatformRequest public class StartPromotionTaskDelayRequest : PlatformRequest

55
BBWY.Test/Program.cs

@ -18,33 +18,52 @@ namespace BBWY.Test
static void Main(string[] args) static void Main(string[] args)
{ {
var appkey = "E1AA9247D5583A6D87449CE6AB290185"; //var appkey = "E1AA9247D5583A6D87449CE6AB290185";
var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c"; //var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c";
var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛 ////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
////2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具 var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具
//var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2 //var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2
//var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛 //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
//var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇 //var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇
//var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品 //var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品
var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具 //var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具
//var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
//var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
//var token = "2ace3023200c4ea9aa682bbf8bffee18jztm";
//var path = @"C:\Users\pengcong001\Desktop\含赠品SKU.txt";
//var j = JToken.Parse(System.IO.File.ReadAllText(path, System.Text.Encoding.UTF8));
//var firstJ = j["Json"]["jingdong_sku_read_searchSkuList_responce"]["page"]["data"].Children().FirstOrDefault();
//var saleAtters = firstJ.Value<JArray>("saleAttrs").Select(s => new
//{
// attrId = s.Value<string>("attrId"),
// attrValues = s.Value<JArray>("attrValues").Select(x => x.ToString()).ToList()
//}).ToList();
IJdClient client = GetJdClient(appkey, appSecret); IJdClient client = GetJdClient(appkey, appSecret);
var p = new JDPromotionAPITest(); {
p.GetPromotionDetailById(client,token, 5629024225);
var skuList = new List<long>() {
10025658468477,
10026219782038,
10026279996161,
10026279996162,
10026279996163,
10026463915671,
10029572468081,
10029572468082,
10029572468083,
10029572468084,
10030302993587,
10063391438691,
10063391438692,
10063391438693,
10063391438694
};
foreach (var sku in skuList)
{
var jdClient = GetJdClient(appkey, appSecret);
var req = new StockReadFindSkuStockRequest();
req.skuId = sku;
var res = jdClient.Execute(req, token, DateTime.Now.ToLocalTime());
}
}
Console.ReadKey(); Console.ReadKey();
} }
} }

Loading…
Cancel
Save