From 54a6d82096210cd570ca39fbc6d650edd3955ab0 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Fri, 12 Apr 2024 02:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=AE=E4=BB=B7=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseScheme/PurchaseSchemeBusiness.cs | 4 +-- .../SkuOptimization/OptimizationBusiness.cs | 32 ++++++++++++++---- .../Sync/OrderSyncBusiness.cs | 33 ++++++++++++++++--- 3 files changed, 56 insertions(+), 13 deletions(-) diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 6b2aebd..ec2a0dc 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -633,8 +633,8 @@ namespace BBWYB.Server.Business .Set(ps => ps.HYSchemeId, psReq.HYSchemeId) .Set(ps => ps.HYBDId, psReq.HYBDId) .Set(ps => ps.Version, newVersion) - .Set(ps => ps.BelongBargainTeamId, belongBargainTeamId) - .Set(ps => ps.BelongBargainTeamName, belongBargainTeamName) + .SetIf(uInfo.isBargainTeam, ps => ps.BelongBargainTeamId, belongBargainTeamId) + .SetIf(uInfo.isBargainTeam, ps => ps.BelongBargainTeamName, belongBargainTeamName) .Set(ps => ps.UpdateUserId, uInfo.user.Id) .Set(ps => ps.UpdateTeamId, uInfo.isBargainTeam ? uInfo.bargainTeam?.Id : uInfo.mainTeam.Id) .Set(ps => ps.IsBargainTeamUpdate, uInfo.isBargainTeam) diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index bc06aef..f65655b 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -35,10 +35,9 @@ namespace BBWYB.Server.Business public Enums.TriggerOptimizationReason? GetOptimizationReason(SpuTotalSaleInfo s) { - if (s.IsFirstPurchaseCompleted == false) - return Enums.TriggerOptimizationReason.首次采购; - if (s.IsFirstPurchaseCompleted == true && - s.IsFirstOptimizationCompleted == false) + //if (s.IsFirstPurchaseCompleted == false) + // return Enums.TriggerOptimizationReason.首次采购; + if (s.IsFirstOptimizationCompleted == false) //s.IsFirstPurchaseCompleted == true && { if (s.ItemCount - s.FirstPurchaseCompletedItemCount >= 20) return Enums.TriggerOptimizationReason.首次优化; @@ -241,6 +240,26 @@ namespace BBWYB.Server.Business } #endregion + #region 验证过滤条件 + if (spuOptimizationTask.PrePurchaseAmount < 500 && spuOptimizationTask.PreItemCount < 10) + { + //移除spu优化任务 + insertSpuOptimizationTaskList.Remove(spuOptimizationTask); + + //移除sku优化任务 + var waitRemoveSkuTaskList = insertSkuOptimizationTaskList.Where(t => t.SpuOptimizationTaskId == spuOptimizationTask.Id).ToList(); + foreach (var skuTask in waitRemoveSkuTaskList) + insertSkuOptimizationTaskList.Remove(skuTask); + waitRemoveSkuTaskList.Clear(); + + continue; + } + #endregion + + #region 暂停一秒区分时间 + Thread.Sleep(1000); //mysql的datetime不支持毫秒级,导致插入时间有误差,暂时用Thread.Sleep补偿 + #endregion + #region 创建SPU优化议价组任务 foreach (var department in bargainTeamList) { @@ -713,8 +732,9 @@ namespace BBWYB.Server.Business .Any()); } } - - var sql = select.ToSql(); + var sql = select.OrderBy(t => t.CreateTime) + .Page(request.PageIndex, request.PageSize) + .ToSql(); var taskList = select.OrderBy(t => t.CreateTime) .Count(out var total) diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs index 3ba7300..f8cb9ef 100644 --- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs @@ -395,11 +395,14 @@ namespace BBWYB.Server.Business.Sync { var spuIdList = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList.Select(osku => osku.ProductId)).Distinct().ToList(); - //没有完成首次采购的spu - var noFisrstPurchasedSpuList = dbSpuTotalSaleInfoList.Union(insertSpuTotalSaleInfoList) - .Where(s => s.IsFirstPurchaseCompleted == false) - .Select(s => s.ProductId) - .ToList(); + ////没有完成首次采购的spu + //var noFisrstPurchasedSpuList = dbSpuTotalSaleInfoList.Union(insertSpuTotalSaleInfoList) + // .Where(s => s.IsFirstPurchaseCompleted == false) + // .Select(s => s.ProductId) + // .ToList(); + + //之前没有销量的spu + var noFisrstPurchasedSpuList = insertSpuTotalSaleInfoList.Select(s => s.ProductId).ToList(); //查询已存在未结束的优化任务 var dbSpuOptimizationTaskList = fsql.Select() @@ -548,6 +551,26 @@ namespace BBWYB.Server.Business.Sync } #endregion + #region 验证过滤条件 + if (spuOptimizationTask.PrePurchaseAmount < 500 && spuOptimizationTask.PreItemCount < 10) + { + //移除spu优化任务 + insertSpuOptimizationTaskList.Remove(spuOptimizationTask); + + //移除sku优化任务 + var waitRemoveSkuTaskList = insertSkuOptimizationTaskList.Where(t => t.SpuOptimizationTaskId == spuOptimizationTask.Id).ToList(); + foreach (var skuTask in waitRemoveSkuTaskList) + insertSkuOptimizationTaskList.Remove(skuTask); + waitRemoveSkuTaskList.Clear(); + + continue; + } + #endregion + + #region 暂停一秒区分时间 + Thread.Sleep(1000); //mysql的datetime不支持毫秒级,导致插入时间有误差,暂时用Thread.Sleep补偿 + #endregion + #region 创建SPU优化议价组任务 foreach (var department in bargainTeamList) {