Browse Source

议价优化

master
shanji 1 year ago
parent
commit
54a6d82096
  1. 4
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  2. 32
      BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
  3. 33
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

4
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -633,8 +633,8 @@ namespace BBWYB.Server.Business
.Set(ps => ps.HYSchemeId, psReq.HYSchemeId) .Set(ps => ps.HYSchemeId, psReq.HYSchemeId)
.Set(ps => ps.HYBDId, psReq.HYBDId) .Set(ps => ps.HYBDId, psReq.HYBDId)
.Set(ps => ps.Version, newVersion) .Set(ps => ps.Version, newVersion)
.Set(ps => ps.BelongBargainTeamId, belongBargainTeamId) .SetIf(uInfo.isBargainTeam, ps => ps.BelongBargainTeamId, belongBargainTeamId)
.Set(ps => ps.BelongBargainTeamName, belongBargainTeamName) .SetIf(uInfo.isBargainTeam, ps => ps.BelongBargainTeamName, belongBargainTeamName)
.Set(ps => ps.UpdateUserId, uInfo.user.Id) .Set(ps => ps.UpdateUserId, uInfo.user.Id)
.Set(ps => ps.UpdateTeamId, uInfo.isBargainTeam ? uInfo.bargainTeam?.Id : uInfo.mainTeam.Id) .Set(ps => ps.UpdateTeamId, uInfo.isBargainTeam ? uInfo.bargainTeam?.Id : uInfo.mainTeam.Id)
.Set(ps => ps.IsBargainTeamUpdate, uInfo.isBargainTeam) .Set(ps => ps.IsBargainTeamUpdate, uInfo.isBargainTeam)

32
BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs

@ -35,10 +35,9 @@ namespace BBWYB.Server.Business
public Enums.TriggerOptimizationReason? GetOptimizationReason(SpuTotalSaleInfo s) public Enums.TriggerOptimizationReason? GetOptimizationReason(SpuTotalSaleInfo s)
{ {
if (s.IsFirstPurchaseCompleted == false) //if (s.IsFirstPurchaseCompleted == false)
return Enums.TriggerOptimizationReason.; // return Enums.TriggerOptimizationReason.首次采购;
if (s.IsFirstPurchaseCompleted == true && if (s.IsFirstOptimizationCompleted == false) //s.IsFirstPurchaseCompleted == true &&
s.IsFirstOptimizationCompleted == false)
{ {
if (s.ItemCount - s.FirstPurchaseCompletedItemCount >= 20) if (s.ItemCount - s.FirstPurchaseCompletedItemCount >= 20)
return Enums.TriggerOptimizationReason.; return Enums.TriggerOptimizationReason.;
@ -241,6 +240,26 @@ namespace BBWYB.Server.Business
} }
#endregion #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优化议价组任务 #region 创建SPU优化议价组任务
foreach (var department in bargainTeamList) foreach (var department in bargainTeamList)
{ {
@ -713,8 +732,9 @@ namespace BBWYB.Server.Business
.Any()); .Any());
} }
} }
var sql = select.OrderBy(t => t.CreateTime)
var sql = select.ToSql(); .Page(request.PageIndex, request.PageSize)
.ToSql();
var taskList = select.OrderBy(t => t.CreateTime) var taskList = select.OrderBy(t => t.CreateTime)
.Count(out var total) .Count(out var total)

33
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(); var spuIdList = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList.Select(osku => osku.ProductId)).Distinct().ToList();
//没有完成首次采购的spu ////没有完成首次采购的spu
var noFisrstPurchasedSpuList = dbSpuTotalSaleInfoList.Union(insertSpuTotalSaleInfoList) //var noFisrstPurchasedSpuList = dbSpuTotalSaleInfoList.Union(insertSpuTotalSaleInfoList)
.Where(s => s.IsFirstPurchaseCompleted == false) // .Where(s => s.IsFirstPurchaseCompleted == false)
.Select(s => s.ProductId) // .Select(s => s.ProductId)
.ToList(); // .ToList();
//之前没有销量的spu
var noFisrstPurchasedSpuList = insertSpuTotalSaleInfoList.Select(s => s.ProductId).ToList();
//查询已存在未结束的优化任务 //查询已存在未结束的优化任务
var dbSpuOptimizationTaskList = fsql.Select<SpuOptimizationTask>() var dbSpuOptimizationTaskList = fsql.Select<SpuOptimizationTask>()
@ -548,6 +551,26 @@ namespace BBWYB.Server.Business.Sync
} }
#endregion #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优化议价组任务 #region 创建SPU优化议价组任务
foreach (var department in bargainTeamList) foreach (var department in bargainTeamList)
{ {

Loading…
Cancel
Save