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 NormPlanDefaultConfigOutput NormPlanConfig(string planId = null) { var lotterInfo = _lotteryQueryService.GetLotteryInfoById(_lotterySession.SystemTypeId); var predictCode = string.Empty; PlanInfoDto planInfo = null; if (!planId.IsNullOrEmpty()) { planInfo = _planInfoQueryService.GetPlanInfoById(planId); predictCode = planInfo.PredictCode; } _cacheManager.RemoveByPattern("Lottery.PlanTrack"); var normPlanDefaultConfig = _normPlanConfigQueryService.GetNormPlanDefaultConfig(lotterInfo.LotteryCode, predictCode); var output = new NormPlanDefaultConfigOutput(); if (planInfo != null && planInfo.PredictCode == PredictCodeDefinition.RxNumCode) { var rxCount = Convert.ToInt32(planInfo.PlanCode.Substring(planInfo.PlanCode.Length - 1)); output.ForecastCounts = GetOutputCounts(rxCount, rxCount); } else { output.ForecastCounts = GetOutputCounts(normPlanDefaultConfig.MinForecastCount, normPlanDefaultConfig.MaxForecastCount); } output.PlanCycles = GetOutputCounts(normPlanDefaultConfig.MinPlanCycle, normPlanDefaultConfig.MaxPlanCycle); return(output); }
public IList <PredictDataDto> UpdateLotteryDataList(string lotteryId, string userId) { var lotteryInfo = _lotteryQueryService.GetLotteryInfoByCode(lotteryId); var finalLotteryData = _lotteryFinalDataQueryService.GetFinalData(lotteryId); var predictPeroid = finalLotteryData.FinalPeriod + 1; var predictDatas = new List <PredictDataDto>(); var random = new Random(unchecked ((int)DateTime.Now.Ticks)); var userNorms = _normConfigQueryService.GetUserOrDefaultNormConfigs(lotteryId, userId); foreach (var userNorm in userNorms) { var planInfo = _planInfoQueryService.GetPlanInfoById(userNorm.PlanId); _predictService.DeleteHistoryPredictDatas(planInfo.LotteryInfo.LotteryCode, planInfo.PlanNormTable, userNorm.LookupPeriodCount, userNorm.PlanCycle); Thread.Sleep(200); userNorm.HistoryCount = random.Next(1, 10) * userNorm.HistoryCount; userNorm.UnitHistoryCount = random.Next(1, 10) * userNorm.UnitHistoryCount; predictDatas.AddRange(PredictNormData(lotteryInfo, userNorm, predictPeroid)); } return(predictDatas); }
public UserPlanNormOutput GetUserNormConfigByPlanId(string userId, string lotteryId, string planId) { try { var userplanNorm = _normConfigQueryService.GetUserNormConfigByPlanId(userId, lotteryId, planId); if (userplanNorm == null) { var userDefaultConfig = _normDefaultConfigService.GetUserNormOrDefaultConfig(userId, lotteryId); userplanNorm = AutoMapper.Mapper.Map <UserPlanNormOutput>(userDefaultConfig); userplanNorm.LotteryId = lotteryId; } var plan = _planInfoQueryService.GetPlanInfoById(planId); if (plan.PredictCode == PredictCodeDefinition.NumCode) { SetSelectedLotteryNumbers(userplanNorm.LotteryId, userplanNorm); } return(userplanNorm); } catch (Exception ex) { throw new LotteryDataException("获取公式指标配置异常"); } }
public PlanInfoDto GetPlanInfoById(string planId) { return(_planInfoQueryService.GetPlanInfoById(planId)); }
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); } } }