Browse Source

销量条件改变

yijia
shanji 2 years ago
parent
commit
dee7a08fbd
  1. 26
      BBWYB.Server.Business/Order/OrderBusiness.cs
  2. 18
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  3. 27
      BBWYB.Server.Model/Db/Product/SpuTotalSaleInfo.cs

26
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -938,6 +938,23 @@ namespace BBWYB.Server.Business
{
if (!string.IsNullOrEmpty(request.ProductId) || string.IsNullOrEmpty(request.SkuId) || request.ShopId == 0)
throw new BusinessException("参数无效");
var spuSaleInfo = fsql.Select<SpuTotalSaleInfo>(request.ProductId).ToOne();
if (spuSaleInfo == null)
throw new BusinessException($"未找到spu{request.ProductId}销量");
var updateSpuSaleInfo = fsql.Update<SpuTotalSaleInfo>(request.ProductId)
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == false, s => s.IsFirstPurchaseCompleted, true)
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == false, s => s.FirstPurchaseCompletedItemCount == s.ItemCount)
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == true &&
spuSaleInfo.IsFirstOptimizationCompleted == false, s => s.IsFirstOptimizationCompleted, true)
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == true &&
spuSaleInfo.IsFirstOptimizationCompleted == false, s => s.FirstOptimizationCompletedItemCount == s.ItemCount)
.Set(s => s.LastOptimizationItemCount == s.ItemCount)
.Set(s => s.LastOptimizationTime, DateTime.Now)
.Set(s => s.UpdateTime, DateTime.Now);
fsql.Transaction(() =>
{
fsql.Update<OrderSku>().Set(osku => osku.IsOptimizationCompleted, 1)
@ -956,10 +973,11 @@ namespace BBWYB.Server.Business
t.TaskType == Enums.TimeLimitTaskType.)
.ExecuteAffrows();
fsql.Update<SpuTotalSaleInfo>(request.ProductId).Set(s => s.LastOptimizationItemCount == s.ItemCount)
.Set(s => s.LastOptimizationTime, DateTime.Now)
.Set(s => s.UpdateTime, DateTime.Now)
.ExecuteAffrows();
//fsql.Update<SpuTotalSaleInfo>(request.ProductId).Set(s => s.LastOptimizationItemCount == s.ItemCount)
// .Set(s => s.LastOptimizationTime, DateTime.Now)
// .Set(s => s.UpdateTime, DateTime.Now)
// .ExecuteAffrows();
updateSpuSaleInfo?.ExecuteAffrows();
});
}

18
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -383,7 +383,7 @@ namespace BBWYB.Server.Business.Sync
//if (s.LastOptimizationItemCount != 0 && s.ItemCount * 1.0 / s.LastOptimizationItemCount >= 2)
// return true;
//return false;
return GetOptimizationReason(s, insertSpuTotalSaleInfoList) != null;
return GetOptimizationReason(s) != null;
});
if (optimizationSpuSaleList.Count() > 0)
{
@ -397,7 +397,7 @@ namespace BBWYB.Server.Business.Sync
if (osku.ProductId != spuSale.ProductId)
continue;
var triggerOptimizationReason = GetOptimizationReason(spuSale, insertSpuTotalSaleInfoList);
var triggerOptimizationReason = GetOptimizationReason(spuSale);
#region 更新sku优化标记
var oskuId = long.Parse(osku.Id);
@ -608,13 +608,15 @@ namespace BBWYB.Server.Business.Sync
return null;
}
public Enums.TriggerOptimizationReason? GetOptimizationReason(SpuTotalSaleInfo s, List<SpuTotalSaleInfo> insertSpuTotalSaleInfoList)
public Enums.TriggerOptimizationReason? GetOptimizationReason(SpuTotalSaleInfo s)
{
if (insertSpuTotalSaleInfoList.Any(x => x.ProductId == s.ProductId))
return Enums.TriggerOptimizationReason.; //首次触发
if (s.LastOptimizationItemCount == 0 && s.ItemCount >= 20)
return Enums.TriggerOptimizationReason.; //销量大于20
if (s.LastOptimizationItemCount != 0 && s.ItemCount * 1.0 / s.LastOptimizationItemCount >= 2)
if (s.IsFirstPurchaseCompleted == false)
return Enums.TriggerOptimizationReason.;
if (s.IsFirstPurchaseCompleted == true &&
s.IsFirstOptimizationCompleted == false &&
s.ItemCount - s.FirstPurchaseCompletedItemCount >= 20)
return Enums.TriggerOptimizationReason.;
if (s.IsFirstOptimizationCompleted == true && s.LastOptimizationItemCount != 0 && s.ItemCount * 1.0 / s.LastOptimizationItemCount >= 2)
return Enums.TriggerOptimizationReason.;
return null;
}

27
BBWYB.Server.Model/Db/Product/SpuTotalSaleInfo.cs

@ -10,21 +10,42 @@ namespace BBWYB.Server.Model.Db
public partial class SpuTotalSaleInfo
{
/// <summary>
/// Spu
/// </summary>
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string ProductId { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 完成首次优化时的销量
/// </summary>
[Column(DbType = "bigint")]
public long? FirstOptimizationCompletedItemCount { get; set; } = 0;
/// <summary>
/// 完成首次采购时的销量
/// </summary>
[Column(DbType = "bigint")]
public long? FirstPurchaseCompletedItemCount { get; set; } = 0;
/// <summary>
/// 是否有效
/// </summary>
public bool? IsEnabled { get; set; } = false;
/// <summary>
/// 是否完成首次优化
/// </summary>
public bool? IsFirstOptimizationCompleted { get; set; } = false;
/// <summary>
/// 是否完成首次采购
/// </summary>
public bool? IsFirstPurchaseCompleted { get; set; } = false;
/// <summary>
/// 销量,销售件数
/// </summary>

Loading…
Cancel
Save