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; } } }