using Store.Product.Models.Product.Sku;
using System.Collections.Generic;
using System.Linq;
namespace Store.Product.Models.PublishParameters.Price
{
///
/// 区间价格配置
///
public class SectionPrice : PriceConfigBase
{
public override PriceStrategyType PriceType => PriceStrategyType.分段价格;
///
/// 区间列表
///
public List SectionList { get; set; } = new List();
///
/// 计算价格
///
///
///
public override decimal ComputedPrice(decimal oldPrice)
{
var newPrice = oldPrice;
if (SectionList != null && SectionList.Count > 0)
{
foreach (var item in SectionList)
{
if (item.BeginPrice < newPrice && newPrice < item.EndPrice)
{
newPrice = item.ComputedPrice(newPrice);
}
}
if (newPrice == oldPrice)
{
newPrice = SectionList.Last().ComputedPrice(newPrice);
}
}
return newPrice;
}
public override SkuMaps ComputedPrice(SkuMaps skuMaps)
{
foreach (var item in skuMaps)
{
item.Price = ComputedPrice(item.Price);
}
return skuMaps;
}
///
/// 指定区间价格
///
public class SectionItemPrice : MultiplesPrice
{
///
/// 开始价格
///
public decimal BeginPrice { get; set; } = 0;
///
/// 结束价格
///
public decimal EndPrice { get; set; } = 10000000;
}
}
}