using Store.Product.Models.Product.Sku;
using System.Linq;
namespace Store.Product.Models.PublishParameters.Price
{
///
/// 高低价格配置
///
public class HighLowPrice : PriceConfigBase
{
public override PriceStrategyType PriceType => PriceStrategyType.高低价格;
///
/// 低价倍数
///
public decimal LowMultiples { get; set; } = 1;
///
/// 其他倍数
///
public decimal OtherMultiples { get; set; } = 1;
///
/// 计算价格
///
///
///
public override decimal ComputedPrice(decimal oldPrice)
{
return oldPrice * OtherMultiples;
}
///
/// 计算最低价
///
///
///
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;
}
}
}