From 1a16c61e71f23e6539ef3a19141f3c4a3add1ca5 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 26 Jan 2023 18:07:16 +0800 Subject: [PATCH] 1 --- .../PlatformSDK/JDBusiness.cs | 57 +++++++++++-------- .../PlatformSDK/PDDBusiness.cs | 2 +- .../PlatformSDK/PlatformSDKBusiness.cs | 4 +- .../PlatformSDK/TaoBaoBusiness.cs | 6 +- .../PlatformSDK/_1688Business.cs | 2 +- BBWY.Server.Business/TaskSchedulerManager.cs | 4 ++ .../StartPromotionTaskRequest.cs | 4 +- JD.API/Startup.cs | 1 + 8 files changed, 46 insertions(+), 34 deletions(-) diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 3ebcda5d..c17135de 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -16,6 +16,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; +using System.Threading.Tasks; namespace BBWY.Server.Business { @@ -36,7 +37,7 @@ namespace BBWY.Server.Business }; - public JDBusiness(IMemoryCache memoryCache, NLogManager nLogManager) : base(memoryCache, nLogManager) { } + public JDBusiness(IMemoryCache memoryCache, NLogManager nLogManager, TaskSchedulerManager taskSchedulerManager) : base(memoryCache, nLogManager, taskSchedulerManager) { } private IJdClient GetJdClient(string appKey, string appSecret) { @@ -700,6 +701,9 @@ namespace BBWY.Server.Business { var jdClient = GetJdClient(deleteSkuRequest.AppKey, deleteSkuRequest.AppSecret); + if (haveGiftTemplateSku) + DeleteSkuList(deleteSkuRequest); + #region 设置完整标题 { var req = new WareWriteUpdateWareTitleRequest(); @@ -713,9 +717,6 @@ namespace BBWY.Server.Business throw new BusinessException($"设置完整标题出错-{(string.IsNullOrEmpty(response.ErrorMsg) ? response.ErrMsg : response.ErrorMsg)}"); } #endregion - - if (haveGiftTemplateSku) - DeleteSkuList(deleteSkuRequest); } /// @@ -1172,26 +1173,28 @@ namespace BBWY.Server.Business } #endregion - #region 下架赠品sku - stepText = "下架赠品sku"; - Thread.Sleep(5000); - DeleteSkuList(deleteGiftSkuRequest); - #endregion - - #region 设置完整标题 - { - stepText = "设置完整标题"; - var req = new WareWriteUpdateWareTitleRequest(); - req.wareId = long.Parse(request.MainProductSpu); - if (!request.FullTitle.StartsWith(brandName)) - req.title = $"{brandName}{request.FullTitle}"; - else - req.title = request.FullTitle; - var response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); - if (response.IsError) - throw new BusinessException($"设置完整标题出错-{(string.IsNullOrEmpty(response.ErrorMsg) ? response.ErrMsg : response.ErrorMsg)}"); - } - #endregion + Task.Factory.StartNew(() => StartJDPromotionTaskDelay(deleteGiftSkuRequest, request, brandName), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.JDPromotionDelayTaskScheduler); + + //#region 下架赠品sku + //stepText = "下架赠品sku"; + //Thread.Sleep(5000); + //DeleteSkuList(deleteGiftSkuRequest); + //#endregion + + //#region 设置完整标题 + //{ + // stepText = "设置完整标题"; + // var req = new WareWriteUpdateWareTitleRequest(); + // req.wareId = long.Parse(request.MainProductSpu); + // if (!request.FullTitle.StartsWith(brandName)) + // req.title = $"{brandName}{request.FullTitle}"; + // else + // req.title = request.FullTitle; + // var response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); + // if (response.IsError) + // throw new BusinessException($"设置完整标题出错-{(string.IsNullOrEmpty(response.ErrorMsg) ? response.ErrMsg : response.ErrorMsg)}"); + //} + //#endregion return promotionId; } @@ -1254,5 +1257,11 @@ namespace BBWY.Server.Business }).ToList(); } + + private void StartJDPromotionTaskDelay(DeleteSkuListRequest deleteSkuRequest, StartPromotionTaskRequest2 startRequest, string brandName) + { + Thread.Sleep(20 * 1000); + RollBackWhenStartPromotionError(deleteSkuRequest, startRequest, brandName, true); + } } } diff --git a/BBWY.Server.Business/PlatformSDK/PDDBusiness.cs b/BBWY.Server.Business/PlatformSDK/PDDBusiness.cs index 9566af0e..d566e79e 100644 --- a/BBWY.Server.Business/PlatformSDK/PDDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/PDDBusiness.cs @@ -10,7 +10,7 @@ namespace BBWY.Server.Business public class PDDBusiness : PlatformSDKBusiness { public override Enums.Platform Platform => Enums.Platform.拼多多; - public PDDBusiness(IMemoryCache memoryCache, NLogManager nLogManager) : base(memoryCache, nLogManager) + public PDDBusiness(IMemoryCache memoryCache, NLogManager nLogManager, TaskSchedulerManager taskSchedulerManager) : base(memoryCache, nLogManager, taskSchedulerManager) { } } diff --git a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs index f9a74aec..abb740f7 100644 --- a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs @@ -20,11 +20,13 @@ namespace BBWY.Server.Business public virtual Enums.Platform Platform { get; } protected NLogManager nLogManager; + protected TaskSchedulerManager taskSchedulerManager; - public PlatformSDKBusiness(IMemoryCache memoryCache, NLogManager nLogManager) + public PlatformSDKBusiness(IMemoryCache memoryCache, NLogManager nLogManager, TaskSchedulerManager taskSchedulerManager) { this.memoryCache = memoryCache; this.nLogManager = nLogManager; + this.taskSchedulerManager = taskSchedulerManager; this.expirationTimeSpan = TimeSpan.FromMinutes(60); } diff --git a/BBWY.Server.Business/PlatformSDK/TaoBaoBusiness.cs b/BBWY.Server.Business/PlatformSDK/TaoBaoBusiness.cs index ce486ade..9083c612 100644 --- a/BBWY.Server.Business/PlatformSDK/TaoBaoBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/TaoBaoBusiness.cs @@ -1,15 +1,11 @@ using BBWY.Server.Model; using Microsoft.Extensions.Caching.Memory; -using NLog; -using System; -using System.Collections.Generic; -using System.Text; namespace BBWY.Server.Business { public class TaoBaoBusiness : PlatformSDKBusiness { - public TaoBaoBusiness(IMemoryCache memoryCache, NLogManager nLogManager) : base(memoryCache, nLogManager) + public TaoBaoBusiness(IMemoryCache memoryCache, NLogManager nLogManager, TaskSchedulerManager taskSchedulerManager) : base(memoryCache, nLogManager, taskSchedulerManager) { } diff --git a/BBWY.Server.Business/PlatformSDK/_1688Business.cs b/BBWY.Server.Business/PlatformSDK/_1688Business.cs index 1ac4e600..2b469040 100644 --- a/BBWY.Server.Business/PlatformSDK/_1688Business.cs +++ b/BBWY.Server.Business/PlatformSDK/_1688Business.cs @@ -23,7 +23,7 @@ namespace BBWY.Server.Business private RestApiService restApiService; private _1688TradeTypeCompare _1688TradeTypeCompare; - public _1688Business(IMemoryCache memoryCache, NLogManager nLogManager, RestApiService restApiService) : base(memoryCache, nLogManager) + public _1688Business(IMemoryCache memoryCache, NLogManager nLogManager, RestApiService restApiService, TaskSchedulerManager taskSchedulerManager) : base(memoryCache, nLogManager,taskSchedulerManager) { this.restApiService = restApiService; _1688TradeTypeCompare = new _1688TradeTypeCompare(); diff --git a/BBWY.Server.Business/TaskSchedulerManager.cs b/BBWY.Server.Business/TaskSchedulerManager.cs index 21b03fc6..70d65ac2 100644 --- a/BBWY.Server.Business/TaskSchedulerManager.cs +++ b/BBWY.Server.Business/TaskSchedulerManager.cs @@ -22,6 +22,8 @@ namespace BBWY.Server.Business public LimitedConcurrencyLevelTaskScheduler GOIWarningTaskScheduler { get; private set; } + public LimitedConcurrencyLevelTaskScheduler JDPromotionDelayTaskScheduler { get; private set; } + public TaskSchedulerManager() { SyncOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); @@ -35,6 +37,8 @@ namespace BBWY.Server.Business StockNumWarningTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); GOIWarningTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); + + JDPromotionDelayTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); } } } diff --git a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs b/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs index 3647ccad..fd39899c 100644 --- a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs +++ b/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs @@ -4,13 +4,13 @@ using System.Text; namespace BBWY.Server.Model.Dto { - public class StartPromotionTaskRequest: PlatformRequest + public class StartPromotionTaskRequest : PlatformRequest { public long Id { get; set; } } public class StartPromotionTaskRequest2 : PlatformRequest - { + { public long Id { get; set; } public long ShopId { get; set; } diff --git a/JD.API/Startup.cs b/JD.API/Startup.cs index bc7db727..171f7ff1 100644 --- a/JD.API/Startup.cs +++ b/JD.API/Startup.cs @@ -41,6 +41,7 @@ namespace JD.API services.AddMemoryCache(); services.AddSingleton(); + services.AddSingleton(); //services.AddSingleton(typeof(NLog.ILogger), NLog.LogManager.GetCurrentClassLogger()); var fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, Configuration.GetConnectionString("DB")).Build();