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