public void 期号补遗() { 当天补遗(); 遗漏开奖(); new 历史比赛记录().重新计算(); #region 历史补遗 var 数据库实体 = new LotteryDbContext(); var 彩票类型 = 数据库实体.LotteryTypes.Where(x => x.LotteryTypeGUID.Equals(时时彩客户端标识)).Select(x => new { x.LotteryTypeID, x.LotteryMaxNum }).FirstOrDefault(); var 查询结果 = from 开奖信息 in 数据库实体.LotteryInfos group 开奖信息 by 开奖信息.LotteryInfoDate into 新集合 where 新集合.Count() < 100 && 新集合.Key != DateTime.Today select new { 日期 = 新集合.Key }; foreach (var 当天日期 in 查询结果) { var 开奖查询结果 = 开奖获取.时时彩500W网站获取(当天日期.日期); var 数据库当前期号实体 = 数据库实体.LotteryInfos.Where(x => x.LotteryInfoDate == 当天日期.日期 && x.LotteryTypeID.Equals(彩票类型.LotteryTypeID)).Select(x => x.LotteryInfoCode).ToList(); 开奖查询结果 = 开奖查询结果.Where(x => !数据库当前期号实体.Contains(x.期号代码)).ToList(); foreach (var 开奖信息 in 开奖查询结果) { 修改数据库开奖信息(开奖信息, 当天日期.日期, false); } } #endregion 历史补遗 }
public void 当天补遗() { var 当天日期 = DateTime.Today; var 开奖查询结果 = 开奖获取.时时彩500W网站获取(当天日期); var 数据库实体 = new LotteryDbContext(); var 彩票类型 = 数据库实体.LotteryTypes.Where(x => x.LotteryTypeGUID.Equals(时时彩客户端标识)).Select(x => new { x.LotteryTypeID, x.LotteryMaxNum }).FirstOrDefault(); var 数据库当前期号实体 = 数据库实体.LotteryInfos.Where(x => x.LotteryInfoDate == 当天日期 && x.LotteryTypeID.Equals(彩票类型.LotteryTypeID)).Select(x => x.LotteryInfoCode).ToList(); 开奖查询结果 = 开奖查询结果.Where(x => !数据库当前期号实体.Contains(x.期号代码)).ToList(); foreach (var 开奖信息 in 开奖查询结果) { 修改数据库开奖信息(开奖信息, 当天日期, false); } }
public async Task <Ticket> GetTicket(string lotteryNumber, string ticketNumber) { try { using (var db = new LotteryDbContext(_dbContextOptions)) { var ticket = await db.Tickets.AsNoTracking() .Where(t => t.Number == ticketNumber && t.Lottery.Number == lotteryNumber) .FirstOrDefaultAsync(); return(ticket); } } catch (Exception) { throw new Exception("Ошибка получения билета по номеру"); } }
public void 遗漏开奖() { var 数据库实体 = new LotteryDbContext(); var 彩票类型 = 数据库实体.LotteryTypes.Where(x => x.LotteryTypeGUID.Equals(时时彩客户端标识)).Select(x => new { x.LotteryTypeID, x.LotteryMaxNum }).FirstOrDefault(); var 查询期号 = from p in 数据库实体.UserLotterys.Where(x => x.LotteryTypeID.Equals(彩票类型.LotteryTypeID) && x.IsWin == 0) group p by p.UserLotteryExpect into 新集合 select 新集合.Key; foreach (var 期号 in 查询期号) { var 开奖信息 = 开奖获取.读取开奖信息(期号); if (开奖信息 != null) { var 查询时间 = DateTime.ParseExact(期号.ToString().Substring(0, 8), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); 修改数据库开奖信息(开奖信息, 查询时间, false); } } }
public static List <配置文件实体> 读取配置文件生产日期(DateTime?要生产的日期 = null) { var 当天开奖列表 = new List <配置文件实体>(); var 生产日期 = DateTime.Today; if (要生产的日期.HasValue) { 生产日期 = 要生产的日期.Value; } var 数据库实体 = new LotteryDbContext(); var 彩票类型 = 数据库实体.LotteryTypes.Where(x => x.LotteryTypeGUID.Equals(时时彩客户端标识)).FirstOrDefault(); using (var 文件流 = new StreamReader(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "OTConfig/CQSSC.txt"))) { var 一行数据 = 文件流.ReadLine(); while (!String.IsNullOrEmpty(一行数据)) { var 临时变量数组 = 一行数据.Split('|'); if (临时变量数组[0] == "120") { 当天开奖列表.Add(new 配置文件实体 { 期号代码 = Convert.ToInt64(生产日期.AddDays(-1).ToString(彩票类型.LotteryCodeFormat) + 临时变量数组[0]), 开奖日期 = Convert.ToDateTime(String.Format("{0} {1}:00", 生产日期.ToString("yyyy-MM-dd"), 临时变量数组[1])) }); } else { 当天开奖列表.Add(new 配置文件实体 { 期号代码 = Convert.ToInt64(生产日期.ToString(彩票类型.LotteryCodeFormat) + 临时变量数组[0]), 开奖日期 = Convert.ToDateTime(String.Format("{0} {1}:00", 生产日期.ToString("yyyy-MM-dd"), 临时变量数组[1])) }); } 一行数据 = 文件流.ReadLine(); } } 当天开奖列表 = 当天开奖列表.Where(x => x.开奖日期 >= DateTime.Now).ToList(); return(当天开奖列表); }
public BaseRepository(LotteryDbContext context) => _context = context;
public WinnerRepository(LotteryDbContext context) : base(context) { }
public SessionRepository(LotteryDbContext context) : base(context) { }
public DrawRepository(LotteryDbContext context) : base(context) { }
public TicketRepository(LotteryDbContext context) : base(context) { }
public void 修改数据库开奖信息(开奖实体 开奖信息, DateTime?日期 = null, Boolean Notice = true) { if (!日期.HasValue) { 日期 = DateTime.Today; } var 开奖数组 = 开奖信息.开奖号.Split(','); var 开奖用户信息 = new List <CountUserDTO>(); var 当前彩种ID = 0; using (var 数据库实体 = new LotteryDbContext()) { 数据库实体.Transaction(() => { var 彩票类型 = 数据库实体.LotteryTypes.Where(x => x.LotteryTypeGUID.Equals(时时彩客户端标识)).FirstOrDefault(); var 玩法 = 数据库实体.PlayTypes.Where(x => x.LotteryTypeID.Equals(彩票类型.LotteryTypeID)); var 数据库当前期号实体 = 数据库实体.LotteryInfos.Where(x => x.LotteryInfoCode.Equals(开奖信息.期号代码)).FirstOrDefault(); 当前彩种ID = 彩票类型.LotteryTypeID; if (数据库当前期号实体 == null) { 数据库当前期号实体 = new LotteryInfos { LotteryInfoCode = 开奖信息.期号代码, LotteryInfoDate = 日期.Value, LotteryInfoOpenCode = 开奖信息.开奖号, LotteryInfoOpenTime = null, LotteryTypeID = 彩票类型.LotteryTypeID }; 数据库实体.LotteryInfos.AddObject(数据库当前期号实体); 数据库实体.SaveChanges(); } foreach (var 玩法详细 in 玩法) { var 当前玩法开奖号 = new StringBuilder(); for (int i = 玩法详细.PlayTypeStartIdx; i <= 玩法详细.PlayTypeEndIdx; i++) { 当前玩法开奖号.Append(开奖数组[i]); } 当前玩法开奖号.Append("|"); var 开奖字符串 = 当前玩法开奖号.ToString(); var 猜中的用户ID = 数据库实体.UserLotterys.Where(x => x.UserLotteryExpect.Equals(开奖信息.期号代码) && x.LotteryTypeID.Equals(彩票类型.LotteryTypeID) && x.Content.Contains(开奖字符串) && x.PlayTypeID.Equals(玩法详细.PlayTypeID) && x.IsWin.Equals(0)).Select(x => x.UserId).ToList(); if (猜中的用户ID.Count > 0) { 数据库实体.UserLotterys.Where(x => x.UserLotteryExpect.Equals(开奖信息.期号代码) && x.LotteryTypeID.Equals(彩票类型.LotteryTypeID) && 猜中的用户ID.Contains(x.UserId) && x.PlayTypeID.Equals(玩法详细.PlayTypeID) && x.IsWin.Equals(0)).Update(x => new UserLotterys { IsWin = 1 }); 数据库实体.SaveChanges(); foreach (var 用户ID in 猜中的用户ID) { 开奖用户信息.Add(new CountUserDTO { playTypeId = 玩法详细.PlayTypeID, playTypeName = 玩法详细.PlayTypeName, IsWin = 1, userId = 用户ID, }); var 用户统计信息 = 数据库实体.UserCounts.Where(x => x.userId.Equals(用户ID) && x.LotteryTypeId.Equals(彩票类型.LotteryTypeID) && x.PlayTypeId.Equals(玩法详细.PlayTypeID)).FirstOrDefault(); 用户统计信息.WinNum += 1; 用户统计信息.MathHistory += "1"; } 数据库实体.SaveChanges(); } //.UserRules.Where(x => 猜中的用户ID.Contains(x.UserID)).Update(x => new UserRules //{ // UserWinNum = x.UserWinNum + 1 //}); var 未猜中的用户ID = 数据库实体.UserLotterys.Where(x => x.UserLotteryExpect.Equals(开奖信息.期号代码) && x.IsWin.Equals(0) && x.LotteryTypeID.Equals(彩票类型.LotteryTypeID) && !x.Content.Contains(开奖字符串) && x.PlayTypeID.Equals(玩法详细.PlayTypeID)).Select(x => x.UserId).ToList(); if (未猜中的用户ID.Count > 0) { 数据库实体.UserLotterys.Where(x => x.UserLotteryExpect.Equals(开奖信息.期号代码) && 未猜中的用户ID.Contains(x.UserId) && x.LotteryTypeID.Equals(彩票类型.LotteryTypeID) && x.PlayTypeID.Equals(玩法详细.PlayTypeID) && x.IsWin.Equals(0)).Update(x => new UserLotterys { IsWin = 2 }); 数据库实体.SaveChanges(); foreach (var 用户ID in 未猜中的用户ID) { 开奖用户信息.Add(new CountUserDTO { playTypeId = 玩法详细.PlayTypeID, playTypeName = 玩法详细.PlayTypeName, IsWin = 2, userId = 用户ID, }); var 用户统计信息 = 数据库实体.UserCounts.Where(x => x.userId.Equals(用户ID) && x.LotteryTypeId.Equals(彩票类型.LotteryTypeID) && x.PlayTypeId.Equals(玩法详细.PlayTypeID)).FirstOrDefault(); 用户统计信息.MathHistory += "2"; } 数据库实体.SaveChanges(); } } }); } if (Notice) { var 通知开奖实体 = new LotteyInfo { Expect = 开奖信息.期号代码, OpenCode = 开奖信息.开奖号 }; var 中奖数据 = from p in 开奖用户信息 group p by p.userId into g select new { Key = g.Key, Value = g.Select(x => new CountSendDTO { IsWin = x.IsWin, playTypeId = x.playTypeId, playTypeName = x.playTypeName }) }; var 输参数 = 中奖数据.ToDictionary(x => x.Key, x => x.Value.ToList()); MyTcpChannel.OpenLotteyNotic(当前彩种ID, 通知开奖实体, 输参数); } }
public PrizeRepository(LotteryDbContext context) : base(context) { }