diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs
index fa294bd4..7c8e1596 100644
--- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs
+++ b/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)
diff --git a/BBWY.Client/Views/MainWindow.xaml b/BBWY.Client/Views/MainWindow.xaml
index 95d68eeb..f6135c21 100644
--- a/BBWY.Client/Views/MainWindow.xaml
+++ b/BBWY.Client/Views/MainWindow.xaml
@@ -26,7 +26,7 @@
-
+
diff --git a/BBWY.Server.API/Controllers/YunDingController.cs b/BBWY.Server.API/Controllers/YunDingController.cs
index 4154de19..f07a638d 100644
--- a/BBWY.Server.API/Controllers/YunDingController.cs
+++ b/BBWY.Server.API/Controllers/YunDingController.cs
@@ -20,7 +20,7 @@ namespace BBWY.Server.API.Controllers
[HttpGet]
public void CreateKey()
{
- yunDingBusiness.CreateKey();
+ //yunDingBusiness.CreateKey();
}
}
}
diff --git a/BBWY.Server.API/Startup.cs b/BBWY.Server.API/Startup.cs
index c4f5d3d6..beeb2875 100644
--- a/BBWY.Server.API/Startup.cs
+++ b/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())
//{
diff --git a/BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs b/BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs
index 2805b920..2fab3607 100644
--- a/BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs
+++ b/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;
diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
index abb7fd32..ccc91a07 100644
--- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
+++ b/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 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>>(mainSkuResult.Content);
+ if (!mainSkuListResponse.Success)
+ throw new BusinessException($"获取主商品sku失败 {mainSkuListResponse.Msg}");
+
+ barCode = mainSkuListResponse.Data[0].Source.Value("barCode");
+ categoryId = mainSkuListResponse.Data[0].Source.Value("categoryId");
+ multiCateProps = mainSkuListResponse.Data[0].Source["multiCateProps"] != null ? mainSkuListResponse.Data[0].Source["multiCateProps"].ToList() : null;
+
+ var jyStoreIdList = fsql.Select().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>(stockNumApiResult.Content);
+
+ var skuStockNumList = stockNumListResponse.Data.Select(j => new
+ {
+ StockNum = j.Value("stockNum"),
+ StoreId = j.Value("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(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> updatePromotionTaskList = new List>();
List insertPromotionTaskSkuRecordList = new List();
IList jobDoneTaskIdList = new List();
-
+ IList jobDoneTaskList = new List();
foreach (var promotionTask in runningTaskList)
{
var productSkuList = new List();
@@ -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(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(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)
diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs
index fb561459..48fa7d9e 100644
--- a/BBWY.Server.Business/Order/OrderBusiness.cs
+++ b/BBWY.Server.Business/Order/OrderBusiness.cs
@@ -462,7 +462,9 @@ namespace BBWY.Server.Business
List insertOrderCostDetailList = new List();
if (autoCalculationCostRequest.IsSetStorageType)
- orderUpdate = fsql.Update(autoCalculationCostRequest.OrderId).Set(o => o.StorageType, autoCalculationCostRequest.StorageType);
+ orderUpdate = fsql.Update(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().Where(aso => aso.OrderId == manualCalculationCostRequest.OrderId).ToList();
if (manualCalculationCostRequest.IsSetStorageType)
- orderUpdate = fsql.Update(manualCalculationCostRequest.OrderId).Set(o => o.StorageType, manualCalculationCostRequest.StorageType);
+ orderUpdate = fsql.Update(manualCalculationCostRequest.OrderId)
+ .Set(o => o.StorageType, manualCalculationCostRequest.StorageType)
+ .SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Enums.OrderState.待出库);
insertOrderCostDetailList.AddRange(manualCalculationCostRequest.OrderCostDetailList.Map>());
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(sdCalculationCostRequest.OrderId).ToOne();
if (orderCost == null)
diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
index 43594011..33edd198 100644
--- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
+++ b/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,24 +275,32 @@ 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 = "";
- 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)}");
- if (sopResponse.IsError)
- throw new BusinessException($"获取SOP订单失败 {(string.IsNullOrEmpty(sopResponse.ErrorMsg) ? sopResponse.ErrMsg : sopResponse.ErrorMsg)}");
-
- if (sopResponse.Json == null)
- sopResponse.Json = JObject.Parse(sopResponse.Body);
- //orderCount = sopResponse.Json["jingdong_pop_order_enSearch_responce"]["searchorderinfo_result"].Value("orderTotal");
- orderJtokens.AddRange((JArray)sopResponse.Json["jingdong_pop_order_enSearch_responce"]["searchorderinfo_result"]["orderInfoList"]);
+ 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)}");
+ if (sopResponse.IsError)
+ throw new BusinessException($"获取SOP订单失败 {(string.IsNullOrEmpty(sopResponse.ErrorMsg) ? sopResponse.ErrMsg : sopResponse.ErrorMsg)}");
+
+ if (sopResponse.Json == null)
+ sopResponse.Json = JObject.Parse(sopResponse.Body);
+
+ //orderCount = sopResponse.Json["jingdong_pop_order_enSearch_responce"]["searchorderinfo_result"].Value("orderTotal");
+ 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
///
///
///
+ ///
///
- private void AddJDPromotionSku(IJdClient jdClient, string token, long promotionId, IList skuList, bool isGift)
+ private void AddJDPromotionSku(IJdClient jdClient, string token, long promotionId, IList 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 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("barCode");
- categoryId = mainSkuList[0].Source.Value("categoryId");
- multiCateProps = mainSkuList[0].Source["multiCateProps"] != null ? mainSkuList[0].Source["multiCateProps"].ToList() : null;
- }
- #endregion
+ //string barCode = string.Empty, categoryId = string.Empty;
+ //IList 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("barCode");
+ // categoryId = mainSkuList[0].Source.Value("categoryId");
+ // multiCateProps = mainSkuList[0].Source["multiCateProps"] != null ? mainSkuList[0].Source["multiCateProps"].ToList() : null;
+ //}
+ //#endregion
#region 获取销售属性
stepText = "获取销售属性";
IList 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()
{
new SkuWriteUpdateSkusItemSaleAttrs()
@@ -968,9 +981,9 @@ namespace BBWY.Server.Business
};
p.multiCateProps = new List();
- 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,7 +1033,10 @@ namespace BBWY.Server.Business
{
RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, null, request.MainProductSpu, request.FullTitle, brandName, false);
- throw new BusinessException($"上架sku失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}");
+ if (res.Body.Contains("en_desc"))
+ throw new BusinessException($"上架sku失败-{res.Json["error_response"].Value("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)"}}*/
}
@@ -1056,24 +1072,27 @@ namespace BBWY.Server.Business
#region 设置sku全国仓库存
{
- stepText = "设置sku全国仓库存";
- try
+ if (request.MainProductSkuInStore)
{
- foreach (var giftSkuId in giftSkuIdList)
+ stepText = "设置sku全国仓库存";
+ try
{
- var req = new StockWriteUpdateSkuStockRequest();
- req.skuId = long.Parse(giftSkuId);
- req.stockNum = 9999;
- req.storeId = 0;
- var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime());
- if (res.IsError)
- throw new BusinessException($"设置全国仓库存失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}");
+ foreach (var giftSkuId in giftSkuIdList)
+ {
+ var req = new StockWriteUpdateSkuStockRequest();
+ req.skuId = long.Parse(giftSkuId);
+ req.stockNum = 9999;
+ req.storeId = 0;
+ var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime());
+ if (res.IsError)
+ throw new BusinessException($"设置全国仓库存失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}");
+ }
+ }
+ catch (Exception ex)
+ {
+ RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, giftSkuIdList, request.MainProductSpu, request.FullTitle, brandName, true);
+ throw ex;
}
- }
- catch (Exception ex)
- {
- RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, giftSkuIdList, request.MainProductSpu, request.FullTitle, brandName, true);
- throw ex;
}
}
#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
diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
index 5da570a1..001e6d6c 100644
--- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/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}");
diff --git a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs b/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs
index 0a4fd60f..da8190bf 100644
--- a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs
+++ b/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
///
public string CustomMotherSku { get; set; }
+
+ ///
+ /// 任务量
+ ///
+ public int TaskCount { get; set; }
+
+ public string MainProductBarCode { get; set; }
+
+ public string MainProductCategoryId { get; set; }
+
+ public IList MainProductMultiCateProps { get; set; }
+
+ ///
+ /// 主商品Sku是否入仓
+ ///
+ public bool MainProductSkuInStore { get; set; }
}
public class StartPromotionTaskDelayRequest : PlatformRequest
diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs
index 652be87e..0b783f2c 100644
--- a/BBWY.Test/Program.cs
+++ b/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 = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2
- //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
- //var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇
- //var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品
- 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("saleAttrs").Select(s => new
- //{
- // attrId = s.Value("attrId"),
- // attrValues = s.Value("attrValues").Select(x => x.ToString()).ToList()
- //}).ToList();
+ var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具
+ //var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2
+ //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
+ //var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇
+ //var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品
+ //var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具
+
IJdClient client = GetJdClient(appkey, appSecret);
- var p = new JDPromotionAPITest();
- p.GetPromotionDetailById(client,token, 5629024225);
+ {
+
+ var skuList = new List() {
+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();
}
}