public static List <开奖实体> 时时彩500W网站获取(DateTime?查询时间 = null) { if (查询时间 == null) { 查询时间 = DateTime.Now; } var requestUri = String.Format("http://kaijiang.500.com/static/public/ssc/xml/qihaoxml/{0}.xml", 查询时间.Value.ToString("yyyyMMdd")); XmlDocument XML文档解析 = new XmlDocument(); XML文档解析.Load(requestUri); var 所有开奖节点 = XML文档解析.SelectNodes("xml/row"); var 返回数据 = new List <开奖实体>(); foreach (var 节点明细 in 所有开奖节点) { var 节点元素 = (XmlElement)节点明细; var 开奖实例 = new 开奖实体 { 期号代码 = Convert.ToInt64(节点元素.GetAttribute("expect")), 开奖号 = 节点元素.GetAttribute("opencode"), }; 返回数据.Add(开奖实例); } return(返回数据); }
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, 通知开奖实体, 输参数); } }