shanji 2 years ago
parent
commit
46bf3ab705
  1. 9
      BBWY.Client/ViewModels/Order/OrderListViewModel.cs
  2. 2
      BBWY.Client/Views/MainWindow.xaml
  3. 2
      BBWY.Server.API/Controllers/YunDingController.cs
  4. 12
      BBWY.Server.API/Startup.cs
  5. 4
      BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs
  6. 112
      BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
  7. 11
      BBWY.Server.Business/Order/OrderBusiness.cs
  8. 95
      BBWY.Server.Business/PlatformSDK/JDBusiness.cs
  9. 2
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs
  10. 19
      BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs
  11. 55
      BBWY.Test/Program.cs

9
BBWY.Client/ViewModels/Order/OrderListViewModel.cs

@ -320,6 +320,15 @@ namespace BBWY.Client.ViewModels
return;
}
if (OrderState == Models.OrderState. && order.StorageType == null)
{
IsLoading = false;
Application.Current.Dispatcher.Invoke(() =>
{
OrderList.Remove(order);
});
}
var orderResponse = orderService.GetOrderById(orderId);
IsLoading = false;
if (!orderResponse.Success)

2
BBWY.Client/Views/MainWindow.xaml

@ -26,7 +26,7 @@
<!--<TextBlock Text="{Binding GlobalContext.User.TeamName}" Margin="5,0,0,0"/>
<TextBlock Text="{Binding GlobalContext.User.Shop.Platform}" Margin="5,0,0,0"/>-->
<TextBlock Text="{Binding GlobalContext.User.Shop.ShopName}" Margin="5,0,0,0"/>
<TextBlock Text="v10077" Margin="5,0,0,0"/>
<TextBlock Text="v10079" Margin="5,0,0,0"/>
</StackPanel>
</Border>
<Grid Grid.Row="1">

2
BBWY.Server.API/Controllers/YunDingController.cs

@ -20,7 +20,7 @@ namespace BBWY.Server.API.Controllers
[HttpGet]
public void CreateKey()
{
yunDingBusiness.CreateKey();
//yunDingBusiness.CreateKey();
}
}
}

12
BBWY.Server.API/Startup.cs

@ -138,12 +138,12 @@ namespace BBWY.Server.API
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, YunDingBusiness yunDingBusiness)
{
yunDingBusiness.RefreshKey();
app.UseSwagger(c => c.SerializeAsV2 = true)
.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "BBWY API");
c.RoutePrefix = string.Empty;
});
//app.UseSwagger(c => c.SerializeAsV2 = true)
// .UseSwaggerUI(c =>
// {
// c.SwaggerEndpoint("/swagger/v1/swagger.json", "BBWY API");
// c.RoutePrefix = string.Empty;
// });
//if (env.IsDevelopment())
//{

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.Server.Model;
using BBWY.Server.Model.Db;
@ -11,7 +10,6 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

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

@ -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,
@ -534,7 +589,13 @@ namespace BBWY.Server.Business
CustomMotherSku = dbPromotionTask.CustomMotherSku,
MainProductSpu = dbPromotionTask.MainProductSpu,
Platform = Enums.Platform.,
ShopId = dbPromotionTask.ShopId.Value
ShopId = dbPromotionTask.ShopId.Value,
TaskCount = dbPromotionTask.TaskCount,
MainProductBarCode = barCode,
MainProductCategoryId = categoryId,
MainProductMultiCateProps = multiCateProps,
MainProductSkuInStore = mainProductSkuInStore
}, GetYunDingRequestHeader(), HttpMethod.Post);
if (httpApiResult.StatusCode != System.Net.HttpStatusCode.OK)
@ -550,6 +611,13 @@ namespace BBWY.Server.Business
startResponse.DeleteGiftSkuList.Count() != 0)
dbPromotionTask.GiftTemplatePutNewSku = string.Join(",", startResponse.DeleteGiftSkuList);
try
{
if (!string.IsNullOrEmpty(shop.PJZSDingDingKey) && !string.IsNullOrEmpty(shop.PJZSDingDingWebHook))
dingDingBusiness.SendDingDingBotMessage(shop.PJZSDingDingKey, shop.PJZSDingDingWebHook, $"任务[{dbPromotionTask.ActivityName}]已开始");
}
catch { }
fsql.Update<PromotionTask>(request.Id).Set(pt => pt.PromotionId, startResponse.JDPromotionId)
.SetIf(!string.IsNullOrEmpty(dbPromotionTask.GiftTemplatePutNewSku), pt => pt.GiftTemplatePutNewSku, dbPromotionTask.GiftTemplatePutNewSku)
.Set(pt => pt.StartTime, DateTime.Now)
@ -827,7 +895,7 @@ namespace BBWY.Server.Business
List<IUpdate<PromotionTask>> updatePromotionTaskList = new List<IUpdate<PromotionTask>>();
List<PromotionTaskSkuRecord> insertPromotionTaskSkuRecordList = new List<PromotionTaskSkuRecord>();
IList<long> jobDoneTaskIdList = new List<long>();
IList<PromotionTask> jobDoneTaskList = new List<PromotionTask>();
foreach (var promotionTask in runningTaskList)
{
var productSkuList = new List<string>();
@ -915,23 +983,24 @@ namespace BBWY.Server.Business
GetYunDingRequestHeader(),
HttpMethod.Post);
if (httpResult.StatusCode != System.Net.HttpStatusCode.OK)
{
Error(shop, loggerName, $"监控任务-暂停京东活动-任务Id {promotionTask.Id}", new Exception(httpResult.Content));
}
else
{
var response = JsonConvert.DeserializeObject<ApiResponse>(httpResult.Content);
if (!response.Success)
{
Error(shop, loggerName, $"监控任务-暂停京东活动-任务Id {promotionTask.Id}", new Exception(response.Msg));
}
}
//if (httpResult.StatusCode != System.Net.HttpStatusCode.OK)
//{
// Error(shop, loggerName, $"监控任务-暂停京东活动-任务Id {promotionTask.Id}", new Exception(httpResult.Content));
//}
//else
//{
// var response = JsonConvert.DeserializeObject<ApiResponse>(httpResult.Content);
// if (!response.Success)
// {
// Error(shop, loggerName, $"监控任务-暂停京东活动-任务Id {promotionTask.Id}", new Exception(response.Msg));
// }
//}
}
#endregion
}
jobDoneTaskIdList.Add(promotionTask.Id); //记录完成任务
jobDoneTaskList.Add(promotionTask);
}
}
}
@ -945,6 +1014,21 @@ namespace BBWY.Server.Business
fsql.Insert(insertPromotionTaskSkuRecordList).ExecuteAffrows();
});
#region 钉钉通知结束
if (!string.IsNullOrEmpty(shop.PJZSDingDingKey) && !string.IsNullOrEmpty(shop.PJZSDingDingWebHook))
{
foreach (var jobDoneTask in jobDoneTaskList)
{
try
{
dingDingBusiness.SendDingDingBotMessage(shop.PJZSDingDingKey, shop.PJZSDingDingWebHook, $"任务[{jobDoneTask.ActivityName}]已结束");
}
catch { }
}
}
#endregion
#region 开始后续任务
//下一轮开始任务
if (jobDoneTaskIdList.Count() > 0)

11
BBWY.Server.Business/Order/OrderBusiness.cs

@ -462,7 +462,9 @@ namespace BBWY.Server.Business
List<OrderCostDetail> insertOrderCostDetailList = new List<OrderCostDetail>();
if (autoCalculationCostRequest.IsSetStorageType)
orderUpdate = fsql.Update<Order>(autoCalculationCostRequest.OrderId).Set(o => o.StorageType, autoCalculationCostRequest.StorageType);
orderUpdate = fsql.Update<Order>(autoCalculationCostRequest.OrderId)
.Set(o => o.StorageType, autoCalculationCostRequest.StorageType)
.SetIf(dbOrder.OrderState == Enums.OrderState., o => o.OrderState, Enums.OrderState.);
var orderCostPurchaseAmount = 0M;
var orderDeliveryExpressFreight = 0M; //发货总运费,sku购买数量第二个开始半价
@ -610,7 +612,9 @@ namespace BBWY.Server.Business
var dbAfterSaleOrderList = fsql.Select<AfterSaleOrder>().Where(aso => aso.OrderId == manualCalculationCostRequest.OrderId).ToList();
if (manualCalculationCostRequest.IsSetStorageType)
orderUpdate = fsql.Update<Order>(manualCalculationCostRequest.OrderId).Set(o => o.StorageType, manualCalculationCostRequest.StorageType);
orderUpdate = fsql.Update<Order>(manualCalculationCostRequest.OrderId)
.Set(o => o.StorageType, manualCalculationCostRequest.StorageType)
.SetIf(dbOrder.OrderState == Enums.OrderState., o => o.OrderState, Enums.OrderState.);
insertOrderCostDetailList.AddRange(manualCalculationCostRequest.OrderCostDetailList.Map<IList<OrderCostDetail>>());
foreach (var orderCostDetail in insertOrderCostDetailList)
@ -727,7 +731,8 @@ namespace BBWY.Server.Business
.Set(o => o.SDOperator, sdCalculationCostRequest.SDOperator)
.SetIf(sdCalculationCostRequest.SDPayChannel != null, o => o.SDPayChannel, sdCalculationCostRequest.SDPayChannel);
if (sdCalculationCostRequest.IsSetStorageType)
orderUpdate = orderUpdate.Set(o => o.StorageType, Enums.StorageType.SD);
orderUpdate = orderUpdate.Set(o => o.StorageType, Enums.StorageType.SD)
.SetIf(dbOrder.OrderState == Enums.OrderState., o => o.OrderState, Enums.OrderState.);
var orderCost = fsql.Select<OrderCost>(sdCalculationCostRequest.OrderId).ToOne();
if (orderCost == null)

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

@ -174,7 +174,9 @@ namespace BBWY.Server.Business
!string.IsNullOrEmpty(searchProductSkuRequest.Sku) &&
skuIdList.Count() != skuList.Count())
{
throw new BusinessException($"{searchProductSkuRequest.CheckStep}-sku条件数量和查询结果数量不一致");
var targetSkuIdList = skuList.Select(s => s.Id);
var exceptSkuIdList = skuIdList.Except(targetSkuIdList);
throw new BusinessException($"{searchProductSkuRequest.CheckStep}-sku条件数量和查询结果数量不一致\r\n{string.Join(",", exceptSkuIdList)}");
}
return skuList;
@ -256,6 +258,8 @@ namespace BBWY.Server.Business
}
else if (searchOrderRequest.JDColType == "0")
{
var pageIndex = 1;
var pageSize = 100;
var sopReq = new PopOrderEnSearchRequest();
if (searchOrderRequest.StartDate != null)
sopReq.startDate = searchOrderRequest.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
@ -271,13 +275,16 @@ namespace BBWY.Server.Business
sopReq.orderState = searchOrderRequest.OrderState; //待转换
}
sopReq.optionalFields = searchFields;
sopReq.page = searchOrderRequest.PageIndex.ToString();
sopReq.pageSize = searchOrderRequest.PageSize.ToString();
//sopReq.page = searchOrderRequest.PageIndex.ToString();
sopReq.pageSize = pageSize.ToString();
sopReq.sortType = "1";
if (searchOrderRequest.SortTimeType != null)
sopReq.dateType = ((int)searchOrderRequest.SortTimeType).ToString();
//sopReq.dateType = "";
while (true)
{
sopReq.page = pageIndex.ToString();
var sopResponse = jdClient.Execute(sopReq, searchOrderRequest.AppToken, DateTime.Now.ToLocalTime());
if (searchOrderRequest.SaveResponseLog)
nLogManager.Default().Info($"sopRequest\r\n{JsonConvert.SerializeObject(searchOrderRequest)} \r\nsopResponse\r\n{JsonConvert.SerializeObject(sopResponse)}");
@ -288,7 +295,12 @@ namespace BBWY.Server.Business
sopResponse.Json = JObject.Parse(sopResponse.Body);
//orderCount = sopResponse.Json["jingdong_pop_order_enSearch_responce"]["searchorderinfo_result"].Value<int>("orderTotal");
orderJtokens.AddRange((JArray)sopResponse.Json["jingdong_pop_order_enSearch_responce"]["searchorderinfo_result"]["orderInfoList"]);
var orderJarray = (JArray)sopResponse.Json["jingdong_pop_order_enSearch_responce"]["searchorderinfo_result"]["orderInfoList"];
orderJtokens.AddRange(orderJarray);
if (orderJarray.Count() < pageSize)
break;
pageIndex++;
}
}
}
else
@ -739,8 +751,9 @@ namespace BBWY.Server.Business
/// <param name="promotionId"></param>
/// <param name="skuList"></param>
/// <param name="isGift"></param>
/// <param name="taskCount"></param>
/// <exception cref="BusinessException"></exception>
private void AddJDPromotionSku(IJdClient jdClient, string token, long promotionId, IList<ProductSkuResponse> skuList, bool isGift)
private void AddJDPromotionSku(IJdClient jdClient, string token, long promotionId, IList<ProductSkuResponse> skuList, bool isGift, int taskCount)
{
var req = new SellerPromotionSkuAddRequest();
req.promoId = promotionId;
@ -763,7 +776,7 @@ namespace BBWY.Server.Business
req.skuIds = $"{req.skuIds}{sku.Id},";
req.jdPrices = $"{req.jdPrices}{sku.Price},";
req.bindType = $"{req.bindType}{(isGift ? 2 : 1)},";
req.num = $"{req.num}{(isGift ? 1 : 100)},";
req.num = $"{req.num}{(isGift ? 1 : taskCount)},";
req.promoPrices = $"{req.promoPrices}{(isGift ? 0 : sku.Price)},";
}
@ -893,36 +906,36 @@ namespace BBWY.Server.Business
if (haveGiftTemplateSku)
{
#region 上架赠品
string barCode = string.Empty, categoryId = string.Empty;
IList<JToken> multiCateProps = null;
#region 获取主商品sku信息 barCode,categoryId,multiCateProps
{
stepText = "获取主商品sku信息";
var mainSkuList = GetProductSkuList(new SearchProductSkuRequest()
{
AppKey = request.AppKey,
AppSecret = request.AppSecret,
AppToken = request.AppToken,
IsContainSource = true,
Platform = request.Platform,
Spu = request.MainProductSpu
});
if (mainSkuList.Count() == 0)
throw new BusinessException($"获取主商品sku信息-未查询到sku信息");
barCode = mainSkuList[0].Source.Value<string>("barCode");
categoryId = mainSkuList[0].Source.Value<string>("categoryId");
multiCateProps = mainSkuList[0].Source["multiCateProps"] != null ? mainSkuList[0].Source["multiCateProps"].ToList() : null;
}
#endregion
//string barCode = string.Empty, categoryId = string.Empty;
//IList<JToken> multiCateProps = null;
//#region 获取主商品sku信息 barCode,categoryId,multiCateProps
//{
// stepText = "获取主商品sku信息";
// var mainSkuList = GetProductSkuList(new SearchProductSkuRequest()
// {
// AppKey = request.AppKey,
// AppSecret = request.AppSecret,
// AppToken = request.AppToken,
// IsContainSource = true,
// Platform = request.Platform,
// Spu = request.MainProductSpu
// });
// if (mainSkuList.Count() == 0)
// throw new BusinessException($"获取主商品sku信息-未查询到sku信息");
// barCode = mainSkuList[0].Source.Value<string>("barCode");
// categoryId = mainSkuList[0].Source.Value<string>("categoryId");
// multiCateProps = mainSkuList[0].Source["multiCateProps"] != null ? mainSkuList[0].Source["multiCateProps"].ToList() : null;
//}
//#endregion
#region 获取销售属性
stepText = "获取销售属性";
IList<JToken> colorSaleAttrs = null;
{
var req = new CategoryReadFindAttrsByCategoryIdUnlimitCateRequest();
req.cid = long.Parse(categoryId);
req.cid = long.Parse(request.MainProductCategoryId);
req.attributeType = 4;
req.field = "attrValueList,attrGroup";
var response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime());
@ -954,7 +967,7 @@ namespace BBWY.Server.Business
//skuId = long.Parse(sku.Id),
jdPrice = giftSku.Price ?? 0,
stockNum = 9999,
barCode = barCode,
barCode = request.MainProductBarCode,
saleAttrs = new List<SkuWriteUpdateSkusItemSaleAttrs>()
{
new SkuWriteUpdateSkusItemSaleAttrs()
@ -968,9 +981,9 @@ namespace BBWY.Server.Business
};
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();
m.type = "com.jd.pop.ware.ic.api.domain.Prop";
@ -1020,6 +1033,9 @@ namespace BBWY.Server.Business
{
RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, null, request.MainProductSpu, request.FullTitle, brandName, false);
if (res.Body.Contains("en_desc"))
throw new BusinessException($"上架sku失败-{res.Json["error_response"].Value<string>("en_desc")}");
else
throw new BusinessException($"上架sku失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}");
/*{"error_response":{"code":"501","en_desc":"com.jd.bk.saf.exception.SafJosException:京东价超出该类目允许范围:12.15-39437元!#821c1c3b382f476abeb21f1f515274c7(Solution reference: https://jos.jd.com/commondoc?listId=171)","zh_desc":"调用参数错误(解决方案参考: https://jos.jd.com/commondoc?listId=171)"}}*/
@ -1055,6 +1071,8 @@ namespace BBWY.Server.Business
#endregion
#region 设置sku全国仓库存
{
if (request.MainProductSkuInStore)
{
stepText = "设置sku全国仓库存";
try
@ -1076,6 +1094,7 @@ namespace BBWY.Server.Business
throw ex;
}
}
}
#endregion
#endregion
@ -1131,25 +1150,25 @@ namespace BBWY.Server.Business
if (motherTemplateSkuList != null && motherTemplateSkuList.Count() > 0)
{
stepText = "添加奶妈模板SKU";
AddJDPromotionSku(jdClient, request.AppToken, promotionId, motherTemplateSkuList, false);
AddJDPromotionSku(jdClient, request.AppToken, promotionId, motherTemplateSkuList, false, request.TaskCount);
}
if (customerMotherSkuList != null && customerMotherSkuList.Count() > 0)
{
stepText = "添加自定义奶妈SKU";
AddJDPromotionSku(jdClient, request.AppToken, promotionId, customerMotherSkuList, false);
AddJDPromotionSku(jdClient, request.AppToken, promotionId, customerMotherSkuList, false, request.TaskCount);
}
if (mainProductSkuList != null && mainProductSkuList.Count() > 0)
{
stepText = "添加主商品SKU";
AddJDPromotionSku(jdClient, request.AppToken, promotionId, mainProductSkuList, false);
AddJDPromotionSku(jdClient, request.AppToken, promotionId, mainProductSkuList, false, request.TaskCount);
}
if (giftSkuList != null && giftSkuList.Count() > 0)
{
stepText = "添加赠品SKU";
AddJDPromotionSku(jdClient, request.AppToken, promotionId, giftSkuList, true);
AddJDPromotionSku(jdClient, request.AppToken, promotionId, giftSkuList, true, request.TaskCount);
}
}
#endregion

2
BBWY.Server.Business/Sync/OrderSyncBusiness.cs

@ -86,7 +86,7 @@ namespace BBWY.Server.Business
//SaveResponseLog = true,
OrderId = orderId,
SortTimeType = sortTimeType
}, GetYunDingRequestHeader(), HttpMethod.Post);
}, GetYunDingRequestHeader(), HttpMethod.Post, timeOutSeconds: 120);
if (orderListApiResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception($"获取订单失败 {orderListApiResult.Content}");

19
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.Text;
@ -55,6 +56,22 @@ namespace BBWY.Server.Model.Dto
/// 自定义奶妈sku
/// </summary>
public string CustomMotherSku { get; set; }
/// <summary>
/// 任务量
/// </summary>
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

55
BBWY.Test/Program.cs

@ -18,33 +18,52 @@ namespace BBWY.Test
static void Main(string[] args)
{
var appkey = "E1AA9247D5583A6D87449CE6AB290185";
var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c";
//var appkey = "E1AA9247D5583A6D87449CE6AB290185";
//var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c";
var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
////2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具
var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具
//var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2
//var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
//var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇
//var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品
var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具
//var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
//var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
//var token = "2ace3023200c4ea9aa682bbf8bffee18jztm";
//var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具
//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);
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();
}
}

Loading…
Cancel
Save