Browse Source

解析sku标题

AddValidOverTime
sanji 2 years ago
parent
commit
c24b8f11ad
  1. 6
      BBWY.Server.API/Controllers/OrderSyncController.cs
  2. 12
      BBWY.Server.Business/PlatformSDK/JDBusiness.cs
  3. 26
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs

6
BBWY.Server.API/Controllers/OrderSyncController.cs

@ -68,6 +68,12 @@ namespace BBWY.Server.API.Controllers
orderSyncBusiness.SyncOrderByDate(syncOrderByDateRequest);
}
[HttpPost]
public void SyncAllShopOrderByDate()
{
orderSyncBusiness.SyncAllShopOrderByDate();
}
/// <summary>
/// 接收订单推送
/// </summary>

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

@ -123,6 +123,16 @@ namespace BBWY.Server.Business
};
}
private string GetSkuTitle(JToken s)
{
var title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty;
if (!string.IsNullOrEmpty(title) && title.Contains("id") && title.Contains("value"))
{
title = string.Join("", JArray.Parse(title).Select(j => $"{j.Value<string>("value")}{j.Value<string>("unit")}"));
}
return title;
}
public override IList<ProductSkuResponse> GetProductSkuList(SearchProductSkuRequest searchProductSkuRequest)
{
var jdClient = GetJdClient(searchProductSkuRequest.AppKey, searchProductSkuRequest.AppSecret);
@ -164,7 +174,7 @@ namespace BBWY.Server.Business
Id = s.Value<string>("skuId"),
ProductId = s.Value<string>("wareId"),
Price = s.Value<decimal>("jdPrice"),
Title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty,
Title = GetSkuTitle(s),
Logo = $"https://img13.360buyimg.com/n9/s80x80_{s.Value<string>("logo")}",
State = s.Value<int>("status"),
CreateTime = s.Value<long>("created").StampToDateTime(),

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

@ -140,11 +140,11 @@ namespace BBWY.Server.Business
public void SyncOrderByDate(SyncOrderByDateRequest syncOrderByDateRequest)
{
if (fsql.Select<OrderSyncTask>().Where(ost => ost.ShopId == syncOrderByDateRequest.ShopId && ost.State == Enums.OrderSyncState.Running).Any())
throw new BusinessException("存在未结束的同步任务,请稍后同步");
syncOrderByDateRequest.EndTime = syncOrderByDateRequest.EndTime.Date.AddDays(1).AddSeconds(-1);
if ((syncOrderByDateRequest.EndTime - syncOrderByDateRequest.StartTime).Days > 7)
throw new BusinessException("同步任务时差最长7天");
//if (fsql.Select<OrderSyncTask>().Where(ost => ost.ShopId == syncOrderByDateRequest.ShopId && ost.State == Enums.OrderSyncState.Running).Any())
// throw new BusinessException("存在未结束的同步任务,请稍后同步");
//syncOrderByDateRequest.EndTime = syncOrderByDateRequest.EndTime.Date.AddDays(1).AddSeconds(-1);
//if ((syncOrderByDateRequest.EndTime - syncOrderByDateRequest.StartTime).Days > 7)
// throw new BusinessException("同步任务时差最长7天");
var orderSyncTask = new OrderSyncTask()
{
@ -1096,6 +1096,22 @@ namespace BBWY.Server.Business
}
}
public void SyncAllShopOrderByDate()
{
var shopList = venderBusiness.GetShopList(platform: Enums.Platform.);
var st = DateTime.Parse("2023-11-26 00:00:00");
var et = DateTime.Parse("2023-11-27 14:00:00");
foreach (var shop in shopList)
{
Task.Factory.StartNew(() => SyncOrderByDate(new SyncOrderByDateRequest()
{
ShopId = long.Parse(shop.ShopId),
StartTime = st,
EndTime = et
}), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
}
}
/// <summary>
/// 转换订单状态
/// </summary>

Loading…
Cancel
Save