From c24b8f11add1962d52923c66b7b4e45a0a37920d Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 27 Nov 2023 16:24:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90sku=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderSyncController.cs | 6 +++++ .../PlatformSDK/JDBusiness.cs | 12 ++++++++- .../Sync/OrderSyncBusiness.cs | 26 +++++++++++++++---- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/BBWY.Server.API/Controllers/OrderSyncController.cs b/BBWY.Server.API/Controllers/OrderSyncController.cs index a3323cab..3ceef75a 100644 --- a/BBWY.Server.API/Controllers/OrderSyncController.cs +++ b/BBWY.Server.API/Controllers/OrderSyncController.cs @@ -68,6 +68,12 @@ namespace BBWY.Server.API.Controllers orderSyncBusiness.SyncOrderByDate(syncOrderByDateRequest); } + [HttpPost] + public void SyncAllShopOrderByDate() + { + orderSyncBusiness.SyncAllShopOrderByDate(); + } + /// /// 接收订单推送 /// diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index eab2da83..b99eb336 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/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("value")}{j.Value("unit")}")); + } + return title; + } + public override IList GetProductSkuList(SearchProductSkuRequest searchProductSkuRequest) { var jdClient = GetJdClient(searchProductSkuRequest.AppKey, searchProductSkuRequest.AppSecret); @@ -164,7 +174,7 @@ namespace BBWY.Server.Business Id = s.Value("skuId"), ProductId = s.Value("wareId"), Price = s.Value("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("logo")}", State = s.Value("status"), CreateTime = s.Value("created").StampToDateTime(), diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index ad1999bc..7d714e34 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -140,11 +140,11 @@ namespace BBWY.Server.Business public void SyncOrderByDate(SyncOrderByDateRequest syncOrderByDateRequest) { - if (fsql.Select().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().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); + } + } + /// /// 转换订单状态 ///