public PlanTrackDetail GetPlanTrackDetail(NormConfigDto userNorm, string lotteryCode, string userId) { var planInfo = _planInfoQueryService.GetPlanInfoById(userNorm.PlanId); var prodictDatas = _lotteryPredictDataQueryService.GetNormPredictDatas(userNorm.Id, planInfo.PlanNormTable, userNorm.LookupPeriodCount + 1, lotteryCode); var currentPredictData = AutoMapper.Mapper.Map <PredictDataDetail>(prodictDatas.FirstOrDefault(p => p.PredictedResult == 2)); currentPredictData.PredictType = planInfo.DsType; // currentPredictData.LotteryData = _lotteryDataAppService.GetLotteryData(planInfo.LotteryInfo.Id,currentPredictData.CurrentPredictPeriod).Data; var historyPredictDatas = AutoMapper.Mapper.Map <ICollection <PredictDataDetail> >(prodictDatas.Where(p => p.PredictedResult != 2).ToList()); historyPredictDatas.ForEach(item => { item.LotteryData = _lotteryDataAppService.GetLotteryData(planInfo.LotteryInfo.Id, item.CurrentPredictPeriod).Data; item.PredictType = planInfo.DsType; }); var planTrackDetail = new PlanTrackDetail() { CurrentPredictData = currentPredictData, FinalLotteryData = _lotteryDataAppService.GetFinalLotteryData(planInfo.LotteryInfo.Id), HistoryPredictDatas = historyPredictDatas, NormId = userNorm.Id, PlanId = planInfo.Id, PlanName = planInfo.PlanName, Sort = userNorm.Sort, StatisticData = ComputeStatisticData(currentPredictData, historyPredictDatas, userNorm) }; return(planTrackDetail); }
public ICollection <PredictDataDto> PredictNormData(string lotteryId, NormConfigDto userNorm, int predictPeroid, string lotteryCode, bool isSwitchFormula = false) { var predictDataResult = new Dictionary <int, PredictDataDto>(); PredictDataDto lastPredictData; bool isNewPredict; var lastPredictPeriod = GetLastPredictNormPeriod(lotteryId, userNorm, lotteryCode, out lastPredictData, out isNewPredict); int startPredict; if (!isNewPredict) { startPredict = lastPredictData.StartPeriod; predictDataResult.Add(lastPredictData.StartPeriod, lastPredictData); } else { startPredict = lastPredictPeriod; } for (int i = lastPredictPeriod; i < predictPeroid; i++) // 新的预测期数是 startPredict = i + 1; 所以这里不能加 = 号 { // 判断上一期的开奖情况 if (NeedNewPredictData(i, startPredict, lotteryId, userNorm, ref predictDataResult, lotteryCode)) { startPredict = i + 1; var thispredictData = PredictAppointedPeroidNormData(lotteryId, startPredict, userNorm, isSwitchFormula); predictDataResult.Add(startPredict, thispredictData); } } return(predictDataResult.Values); }
public override PredictedResult JudgePredictDataResult(LotteryInfoDto lotteryInfo, PredictDataDto startPeriodData, NormConfigDto userNormConfig) { var planInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); var lotteryData = _lotteryDataQueryService.GetPredictPeriodData(lotteryInfo.Id, startPeriodData.CurrentPredictPeriod); if (lotteryData == null) { return(PredictedResult.Running); } var lotteryNumber = new LotteryNumber(lotteryData); var rank = planInfo.PositionInfos.First().Position; var lotteryNumberData = lotteryNumber.GetRankNumber(rank); if (startPeriodData.PredictedData.Contains(lotteryNumberData.ToString())) { if (planInfo.DsType == PredictType.Fix) { return(PredictedResult.Right); } } else { if (planInfo.DsType == PredictType.Kill) { return(PredictedResult.Right); } } if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) { return(PredictedResult.Error); } return(PredictedResult.Running); }
private int GetHistoryLotteryCount(NormConfigDto normConfig) { var random = new Random(unchecked ((int)DateTime.Now.Ticks)); var min = Math.Min(normConfig.UnitHistoryCount, normConfig.HistoryCount); var max = Math.Min(normConfig.UnitHistoryCount, normConfig.HistoryCount); var r = random.Next(min, max); return(r); }
private string GetPredictedDataMock(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { var minVal = normPlanInfo.PositionInfos.Min(p => p.MinValue); var maxVal = normPlanInfo.PositionInfos.Min(p => p.MaxValue); var lotteryNumbers = new List <int>(); for (int i = minVal; i <= maxVal; i++) { lotteryNumbers.Add(i); } lotteryNumbers = lotteryNumbers.OrderBy(p => Guid.NewGuid()).ToList(); var result = lotteryNumbers.Take(userNorm.ForecastCount).ToString(","); return(result); }
public virtual string GetPredictedData(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { var random = new Random(unchecked ((int)DateTime.Now.Ticks)); var predictedDatas = GetPredictedDataList(normPlanInfo, userNorm); if (predictedDatas.Count <= userNorm.ForecastCount) { return(predictedDatas.Take(userNorm.ForecastCount).ToSplitString()); } else { var skipMaxCount = (int)Math.Floor((double)(predictedDatas.Count - userNorm.ForecastCount) / 2); var skipCount = random.Next(0, skipMaxCount); return(predictedDatas.Skip(skipCount).Take(userNorm.ForecastCount).ToSplitString()); } }
public override PredictedResult JudgePredictDataResult(LotteryInfoDto lotteryInfo, PredictDataDto startPeriodData, NormConfigDto userNormConfig) { var planInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); var lotteryData = _lotteryDataQueryService.GetPredictPeriodData(lotteryInfo.Id, startPeriodData.CurrentPredictPeriod); if (lotteryData == null) { return(PredictedResult.Running); } var lotteryNumber = new LotteryNumber(lotteryData); var lotteryNumCount = lotteryNumber.Datas.Length; var lotteryNumbers = new List <int>(); foreach (var position in planInfo.PositionInfos) { var lotteryNumberData = GetLotteryNumberData(lotteryNumber, position.Position, planInfo); lotteryNumbers.Add(Convert.ToInt32(lotteryNumberData)); } var predictNumber = startPeriodData.PredictedData.Split(',').Select(p => Convert.ToInt32(p)).ToArray(); if (userNormConfig.ForecastCount <= lotteryNumCount) { if (predictNumber.All(p => lotteryNumbers.Contains(p))) { return(PredictedResult.Right); } else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) { return(PredictedResult.Error); } } else { if (predictNumber.All(p => lotteryNumber.Datas.Contains(p))) { return(PredictedResult.Right); } else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) { return(PredictedResult.Error); } } return(PredictedResult.Running); }
public override PredictedResult JudgePredictDataResult(LotteryInfoDto lotteryInfo, PredictDataDto startPeriodData, NormConfigDto userNormConfig) { var planInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); var lotteryData = _lotteryDataQueryService.GetPredictPeriodData(lotteryInfo.Id, startPeriodData.CurrentPredictPeriod); if (lotteryData == null) { return(PredictedResult.Running); } var lotteryNumber = new LotteryNumber(lotteryData); var sum = 0; foreach (var position in planInfo.PositionInfos) { var lotteryNumberData = GetLotteryNumberData(lotteryNumber, position.Position, planInfo); sum += Convert.ToInt32(lotteryNumberData); } var junzhi = (int)(sum / planInfo.PositionInfos.Count); bool isRight; var numPredictData = startPeriodData.PredictedData.Split(',').Select(p => Convert.ToInt32(p)); if (planInfo.DsType == PredictType.Fix) { isRight = numPredictData.Contains(junzhi); } else { isRight = !numPredictData.Contains(junzhi); } if (isRight) { return(PredictedResult.Right); } else { if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) { return(PredictedResult.Error); } return(PredictedResult.Running); } }
private int GetLastPredictNormPeriod(string lotteryId, NormConfigDto userNorm, string lotteryCode, out PredictDataDto lastPredictData, out bool isNewPredict) { var normPlanInfo = _planInfoQueryService.GetPlanInfoById(userNorm.PlanId); lastPredictData = _lotteryPredictDataQueryService.GetLastPredictData(userNorm.Id, normPlanInfo.PlanNormTable, lotteryCode); var lastLotteryData = _lotteryFinalDataQueryService.GetFinalData(lotteryId); var predictCount = userNorm.PlanCycle * userNorm.LookupPeriodCount; var theoryStartPredictPreoid = lastLotteryData.FinalPeriod - predictCount; if (lastPredictData != null) { var userNormPredictPeroid = lastPredictData.StartPeriod + lastPredictData.MinorCycle - 1; if (userNormPredictPeroid > theoryStartPredictPreoid) { isNewPredict = false; return(userNormPredictPeroid); } } isNewPredict = true; return(theoryStartPredictPreoid); }
public override PredictedResult JudgePredictDataResult(LotteryInfoDto lotteryInfo, PredictDataDto startPeriodData, NormConfigDto userNormConfig) { var planInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); var lotteryData = _lotteryDataQueryService.GetPredictPeriodData(lotteryInfo.Id, startPeriodData.CurrentPredictPeriod); if (lotteryData == null) { return(PredictedResult.Running); } var lotteryNumber = new LotteryNumber(lotteryData); var postion = planInfo.PositionInfos.First().Position; var lotteryNumberData = GetLotteryNumberData(lotteryNumber, postion, planInfo).ToString(); bool isRight; var numPredictData = startPeriodData.PredictedData.Split(',').Select(p => p.ToString()); if (planInfo.DsType == PredictType.Fix) { isRight = numPredictData.Contains(lotteryNumberData); } else { isRight = !numPredictData.Contains(lotteryNumberData); } if (isRight) { return(PredictedResult.Right); } else { if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) { return(PredictedResult.Error); } return(PredictedResult.Running); } }
private StatisticData ComputeStatisticData(PredictDataDetail currentPredictData, ICollection <PredictDataDetail> historyPredictDatas, NormConfigDto userNorm) { if (currentPredictData == null) { return(null); } var statisticData = new StatisticData() { CurrentScore = currentPredictData.CurrentScore, }; statisticData.MaxSerieError = ComputeArrayMaxCount(historyPredictDatas.Select(p => p.PredictedResult).ToArray(), 1); statisticData.MaxSerieRight = ComputeArrayMaxCount(historyPredictDatas.Select(p => p.PredictedResult).ToArray(), 0); int currentSerie = 0; var currentResult = historyPredictDatas.First().PredictedResult; foreach (var data in historyPredictDatas) { currentSerie++; if (currentResult != data.PredictedResult) { break; } } statisticData.CurrentSerie = currentSerie; var minorCycleStatistic = new Dictionary <int, int>(); for (int i = 1; i <= userNorm.PlanCycle; i++) { var thisCysleRightCount = historyPredictDatas.Count(p => p.PredictedResult == 0 && p.MinorCycle == i); minorCycleStatistic.Add(i, thisCysleRightCount); } statisticData.MinorCycleStatistic = minorCycleStatistic; return(statisticData); }
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { var minVal = _predictedDataRate.Keys.Min(); var maxVal = _predictedDataRate.Keys.Max(); var rd = new Random(); var result = new List <string>(); while (result.Count < userNorm.ForecastCount) { result.AddIfNotContains(rd.Next(minVal, maxVal).ToString()); } return(result); }
//private string GetPredictedDataByRate(IDictionary<int, double> predictedDataRate, PredictType dsType, NormConfigDto userNorm) //{ // if (dsType == PredictType.Fix) // { // var predictedDataList = predictedDataRate.OrderByDescending(p => p.Value).Select(p => p.Key).ToList(); // var result = predictedDataList.Take(userNorm.ForecastCount).ToString(","); // return result; // } // else // { // var predictedDataList = predictedDataRate.OrderBy(p => p.Value).Select(p => p.Key).ToList(); // var result = predictedDataList.Take(userNorm.ForecastCount).ToString(","); // return result; // } //} private PredictedResult JudgePredictDataResult(string lotteryId, PredictDataDto startPeriodData, NormConfigDto userNormConfig) { var planInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); var lotteryInfo = _lotteryQueryService.GetLotteryInfoById(lotteryId); var judgeResult = JudgePredictDataResultFatory.CreateJudgePredictDataResult(planInfo.PredictCode); return(judgeResult.JudgePredictDataResult(lotteryInfo, startPeriodData, userNormConfig)); //var planInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); //var lotteryData = _lotteryDataQueryService.GetPredictPeriodData(lotteryId, startPeriodData.CurrentPredictPeriod); //if (lotteryData == null) //{ // return PredictedResult.Running; //} //var lotteryNumber = new LotteryNumber(lotteryData); //var normPlanInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); //if (planInfo.PlanPosition == PlanPosition.Single) //{ // var postion = planInfo.PositionInfos.First().Position; // var lotteryNumberData = GetLotteryNumberData(lotteryNumber, postion, normPlanInfo); //lotteryNumber[postion]; // bool isRight; // if (normPlanInfo.PredictCode == PredictCodeDefinition.NumCode) // { // var numPredictData = startPeriodData.PredictedData.Split(',').Select(p => Convert.ToInt32(p)); // var numLotteryNum = Convert.ToInt32(lotteryNumberData); // if (normPlanInfo.DsType == PredictType.Fix) // { // isRight = numPredictData.Contains(numLotteryNum); // } // else // { // isRight = !numPredictData.Contains(numLotteryNum); // } // } // else // { // if (normPlanInfo.DsType == PredictType.Fix) // { // isRight = startPeriodData.PredictedData // .Contains(lotteryNumberData.ToString()); // } // else // { // isRight = !startPeriodData.PredictedData // .Contains(lotteryNumberData.ToString()); // } // } // if (isRight) //:todo bug // { // return PredictedResult.Right; // } // else // { // if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) // { // return PredictedResult.Error; // } // return PredictedResult.Running; // } //} //else if (planInfo.PlanPosition == PlanPosition.Multiple) //{ // #region 不定位预测结果判定正错 // var positions = planInfo.PositionInfos.Select(p => p.Position).ToArray(); // var lotteryNumbers = new List<object>(); // lotteryNumber.GetLotteryNumbers(positions); // foreach (var position in positions) // { // lotteryNumbers.Add(GetLotteryNumberData(lotteryNumber, position, normPlanInfo)); // } // if (normPlanInfo.PredictCode == PredictCodeDefinition.NumCode) // { // var predictNumber = startPeriodData.PredictedData.Split(',').Select(p => Convert.ToInt32(p)) // .ToArray(); // if (planInfo.DsType == PredictType.Fix) // { // if (lotteryNumbers.Any(p => predictNumber.Contains(Convert.ToInt32(p)))) // { // return PredictedResult.Right; // } // else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) // { // return PredictedResult.Error; // } // return PredictedResult.Running; // } // else // { // if (!lotteryNumbers.Any(p => predictNumber.Contains(Convert.ToInt32(p)))) // { // return PredictedResult.Right; // } // else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) // { // return PredictedResult.Error; // } // return PredictedResult.Running; // } // } // else // { // var predictNumber = startPeriodData.PredictedData.Split(',').Select(p => p) // .ToArray(); // if (planInfo.DsType == PredictType.Fix) // { // if (lotteryNumbers.Any(p => predictNumber.Contains(p))) // { // return PredictedResult.Right; // } // else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) // { // return PredictedResult.Error; // } // return PredictedResult.Running; // } // else // { // if (!lotteryNumbers.Any(p => predictNumber.Contains(p))) // { // return PredictedResult.Right; // } // else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) // { // return PredictedResult.Error; // } // return PredictedResult.Running; // } // } // #endregion 不定位预测结果判定正错 //} //else //{ // var rank = planInfo.PositionInfos.First().Position; // var lotteryNumberData = lotteryNumber.GetRankNumber(rank); // if (startPeriodData.PredictedData.Contains(lotteryNumberData.ToString())) // { // if (planInfo.DsType == PredictType.Fix) // { // return PredictedResult.Right; // } // else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) // { // return PredictedResult.Error; // } // return PredictedResult.Running; // } // else // { // if (planInfo.DsType == PredictType.Kill) // { // return PredictedResult.Right; // } // else if (startPeriodData.CurrentPredictPeriod >= startPeriodData.EndPeriod) // { // return PredictedResult.Error; // } // return PredictedResult.Running; // } //} }
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { if (normPlanInfo.DsType == PredictType.Fix) { var predictedDataList = _predictedDataRate.OrderByDescending(p => p.Value).Select(p => p.Key.ToString()).ToList(); var result = predictedDataList.ToList(); return(result); } else { var predictedDataList = _predictedDataRate.OrderBy(p => p.Value).Select(p => p.Key.ToString()).ToList(); var result = predictedDataList; return(result); } }
private PredictDataDto PredictAppointedPeroidNormData(string lotteryId, int predictPeriod, NormConfigDto userNorm, bool isSwitchFormula = false) { var lotteryCount = GetHistoryLotteryCount(userNorm); var predictLotteryData = _lotteryDataQueryService.GetPredictPeriodDatas(lotteryId, predictPeriod - 1, lotteryCount); var lotteryDataList = new LotteryDataList(predictLotteryData); var lotteryEngine = EngineContext.LotterEngine(lotteryId); var normPlanInfo = _planInfoQueryService.GetPlanInfoById(userNorm.PlanId); var predictData = GetPredictData(normPlanInfo, lotteryDataList); var positionInfo = normPlanInfo.PositionInfos.First(); var count = positionInfo.MaxValue - positionInfo.MinValue + 1; string predictedData = String.Empty; IDictionary <int, double> predictedDataRate; try { AlgorithmType algorithmType = normPlanInfo.AlgorithmType; if (isSwitchFormula) { algorithmType = AlgorithmType.Mock; } try { predictedDataRate = lotteryEngine.GetPerdictor(algorithmType) .Predictor(predictData, count, userNorm.UnitHistoryCount, userNorm.HistoryCount, new Tuple <int, int>(positionInfo.MinValue, positionInfo.MaxValue)); } catch (Exception e) { try { algorithmType = AlgorithmType.Temperature; predictedDataRate = lotteryEngine.GetPerdictor(algorithmType) .Predictor(predictData, count, userNorm.UnitHistoryCount, userNorm.HistoryCount, new Tuple <int, int>(positionInfo.MinValue, positionInfo.MaxValue)); } catch (Exception e2) { algorithmType = AlgorithmType.Mock; predictedDataRate = lotteryEngine.GetPerdictor(algorithmType) .Predictor(predictData, count, userNorm.UnitHistoryCount, userNorm.HistoryCount, new Tuple <int, int>(positionInfo.MinValue, positionInfo.MaxValue)); } } var computePredictResult = ComputePredictFatory.CreateComputePredictResult(normPlanInfo.PredictCode, predictedDataRate); predictedData = computePredictResult.GetPredictedData(normPlanInfo, userNorm); //predictedDataRate != null ? //GetPredictedDataByRate(predictedDataRate, normPlanInfo.DsType, userNorm) //: GetPredictedDataMock(normPlanInfo, userNorm); } catch (Exception ex) { _logger.Error(ex); predictedData = GetPredictedDataMock(normPlanInfo, userNorm); } var predictDataInfo = new PredictDataDto() { NormConfigId = userNorm.Id, CurrentPredictPeriod = predictPeriod, StartPeriod = predictPeriod, EndPeriod = predictPeriod + userNorm.PlanCycle - 1, MinorCycle = 1, PredictedData = predictedData, PredictedResult = (int)PredictedResult.Running, PredictType = normPlanInfo.DsType, }; return(predictDataInfo); }
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { var resultVal = new List <string>(); if (normPlanInfo.DsType == PredictType.Fix) { var percentRate = _predictedDataRate.OrderByDescending(p => p.Value); foreach (var item in percentRate) { resultVal.Add(valList[item.Key - 1]); } } else { var percentRate = _predictedDataRate.OrderBy(p => p.Value); foreach (var item in percentRate) { resultVal.Add(valList[item.Key - 1]); } } return(resultVal.ToList()); }
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { // var perdictedVal = new List<string>(); var perdictedVal = zhiHeVal.ToList().Shuffle().ToList(); return(perdictedVal); }
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { throw new System.NotImplementedException(); }
public override PredictedResult JudgePredictDataResult(LotteryInfoDto lotteryInfo, PredictDataDto startPeriodData, NormConfigDto userNormConfig) { throw new System.NotImplementedException(); }
public abstract PredictedResult JudgePredictDataResult(LotteryInfoDto lotteryInfo, PredictDataDto startPeriodData, NormConfigDto userNormConfig);
protected abstract ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm);
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { //var perdictedVal = new List<string>(); //double singlePercent = 0; //double doublePercent = 0; //foreach (var item in _predictedDataRate) //{ // if (item.Key % 2 == 0) // { // doublePercent += item.Value; // } // else // { // singlePercent += item.Value; // } //} //if (singlePercent > doublePercent) //{ // perdictedVal.Add(singleVal); // perdictedVal.Add(doubleVal); //} //else //{ // perdictedVal.Add(doubleVal); // perdictedVal.Add(singleVal); //} var perdictedVal = danShuangVal.ToList().Shuffle().ToList(); return(perdictedVal); }
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { //double bigPercent = 0; //double smallPercent = 0; // var perdictedVal = new List<string>(); //foreach (var item in _predictedDataRate) //{ // if (_predictedDataRate.Count / 2 > item.Key) // { // bigPercent += item.Value; // } // else // { // smallPercent += item.Value; // } //} //if (bigPercent > smallPercent) //{ // perdictedVal.Add(bigVal); // perdictedVal.Add(smallVal); //} //else //{ // perdictedVal.Add(smallVal); // perdictedVal.Add(bigVal); //} var perdictedVal = sizeVal.ToList().Shuffle().ToList(); return(perdictedVal); }
protected override ICollection <string> GetPredictedDataList(PlanInfoDto normPlanInfo, NormConfigDto userNorm) { var positionInfo = normPlanInfo.PositionInfos.First(); var valArr = PredictVals(positionInfo.Position, normPlanInfo.DsType); return(valArr.ToList()); }
private IEnumerable <PredictDataDto> PredictNormData(LotteryInfoDto lotteryInfo, NormConfigDto userNorm, int predictPeroid, bool isSwitchFormula = false) { return(_lotteryPredictDataService.PredictNormData(lotteryInfo.Id, userNorm, predictPeroid, lotteryInfo.LotteryCode, isSwitchFormula)); }
private bool NeedNewPredictData(int period, int startPredict, string lotteryId, NormConfigDto userNormConfig, ref Dictionary <int, PredictDataDto> predictDataResults, string lotteryCode) { var normPlanInfo = _planInfoQueryService.GetPlanInfoById(userNormConfig.PlanId); PredictDataDto startPeriodData = null; if (!predictDataResults.Safe().Any()) { startPeriodData = _lotteryPredictDataQueryService.GetPredictDataByStartPeriod(startPredict, userNormConfig.Id, normPlanInfo.PlanNormTable, lotteryCode); if (startPeriodData == null) { return(true); } var predictedResult = JudgePredictDataResult(lotteryId, startPeriodData, userNormConfig); if (predictedResult == PredictedResult.Right) { startPeriodData.EndPeriod = period; startPeriodData.PredictedResult = (int)PredictedResult.Right; predictDataResults.Add(startPredict, startPeriodData); return(true); } else if (predictedResult == PredictedResult.Error) { startPeriodData.EndPeriod = period; startPeriodData.PredictedResult = (int)PredictedResult.Error; predictDataResults.Add(startPredict, startPeriodData); return(true); } else { startPeriodData.CurrentPredictPeriod += 1; startPeriodData.MinorCycle = startPeriodData.MinorCycle + 1; startPeriodData.PredictedResult = (int)PredictedResult.Running; predictDataResults.Add(startPredict, startPeriodData); return(false); } } else { startPeriodData = predictDataResults[startPredict]; var predictedResult = JudgePredictDataResult(lotteryId, startPeriodData, userNormConfig); if (predictedResult == PredictedResult.Right) { startPeriodData.EndPeriod = period; startPeriodData.PredictedResult = (int)PredictedResult.Right; return(true); } else if (predictedResult == PredictedResult.Error) { startPeriodData.EndPeriod = period; startPeriodData.PredictedResult = (int)PredictedResult.Error; return(true); } else { startPeriodData.MinorCycle = startPeriodData.MinorCycle + 1; startPeriodData.CurrentPredictPeriod += 1; startPeriodData.PredictedResult = (int)PredictedResult.Running; return(false); } } }