Files
KJD/Store.Product/Models/PublishParameters/Price/HighLowPrice.cs
T
2026-09-11 19:11:12 +08:00

61 lines
1.6 KiB
C#

using Store.Product.Models.Product.Sku;
using System.Linq;
namespace Store.Product.Models.PublishParameters.Price
{
/// <summary>
/// 高低价格配置
/// </summary>
public class HighLowPrice : PriceConfigBase
{
public override PriceStrategyType PriceType => PriceStrategyType.高低价格;
/// <summary>
/// 低价倍数
/// </summary>
public decimal LowMultiples { get; set; } = 1;
/// <summary>
/// 其他倍数
/// </summary>
public decimal OtherMultiples { get; set; } = 1;
/// <summary>
/// 计算价格
/// </summary>
/// <param name="oldPrice"></param>
/// <returns></returns>
public override decimal ComputedPrice(decimal oldPrice)
{
return oldPrice * OtherMultiples;
}
/// <summary>
/// 计算最低价
/// </summary>
/// <param name="oldPrice"></param>
/// <returns></returns>
public decimal ComputedLowPrice(decimal oldPrice)
{
return oldPrice * LowMultiples;
}
public override SkuMaps ComputedPrice(SkuMaps skuMaps)
{
decimal minPrice = skuMaps.Min(a => a.Price);
foreach (var item in skuMaps)
{
if (item.Price == minPrice)
{
ComputedLowPrice(item.Price);
}
else
{
item.Price = ComputedPrice(item.Price);
}
}
return skuMaps;
}
}
}