using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TrainInfomationProviderService.TrainInfo.Entities { public class TrainTransitSearchOptions { /// /// 最大允许多出来的时间 /// public int MaxExtraMinutes { get; set; } /// /// 最优先推荐的线路数 /// public int TopMostRecommandCount { get; set; } public void InitLimit(int baseMinutes) { if (baseMinutes < 120) { //2小时内的车最大允许到6小时 MaxExtraMinutes = baseMinutes*3; } else if (baseMinutes < 180) { MaxExtraMinutes = (int)(baseMinutes * 2.5); } else if (baseMinutes < 300) { MaxExtraMinutes = (int)(baseMinutes * 2); } else if (baseMinutes < 900) { MaxExtraMinutes = (int)(baseMinutes * 1.5); } else { MaxExtraMinutes = (int)(baseMinutes * 1.3); } } /// /// 同一个车次最高保持的换乘站数 /// public int SameLineMaxKeepStations { get; set; } /// /// 当换乘线路数超过此数目时,砍掉超过时间的 /// public int StartCutLongRunningCount { get; set; } /// /// 砍掉超过时间比例 /// public double CutLongRunningRate { get; set; } /// /// 创建 的新实例(TrainTransitSearchOptions) /// public TrainTransitSearchOptions() { SameLineMaxKeepStations = 3; CutLongRunningRate = 1.7; StartCutLongRunningCount = 5; TopMostRecommandCount = 16; } } }