/// <summary> /// 创建新一期彩票,要求上一期必须完成 /// </summary> /// <param name="issueName"></param> /// <param name="beginTime"></param> /// <param name="stopTime"></param> /// <returns></returns> public bool ConstructNewIssue(string issueName, DateTime beginTime, DateTime stopTime) { int poolCmd = 0; var lastIssue = _issueRepository.Table.OrderBy(i => i.CreatedOn).LastOrDefault(); if (lastIssue != null) { if (lastIssue.PoolCmd == 0) { poolCmd = 1; } if (lastIssue.Stat != (int)IssueStat.Accomplish) { throw new Exception("上一期没有完成,不能创建新一期。"); } } DateTime now = DateTime.Now; var newIssue = new LotteryIssue() { IssueName = issueName, BeginOn = beginTime, StopOn = stopTime, OrderQuantity = 0, Result = "", CreatedOn = now, PoolCmd = poolCmd, Stat = (int)IssueStat.Establish }; _issueRepository.Insert(newIssue); ConstructPool(poolCmd); return(true); }
//private DateTime mIssueDate; ///// <summary> ///// 生成 ///// </summary> //public List<LotteryIssue> Generate(DateTime issueDate) //{ // this.mIssueDate = issueDate; // List<LotteryIssue> result = new List<LotteryIssue>(); // DateTime beginDate = Convert.ToDateTime(issueDate.AddDays(-1).ToString("yyyy/MM/dd") + " 23:55:00"); // result.AddRange(Builder(beginDate, 5 * 60, 1, 288)); // return result; //} //protected override string BuilderIssueCode(DateTime endDate, string code) //{ // return this.mIssueDate.ToString("yyyyMMdd") + code; //} ///// <summary> ///// 结束推迟时间 ///// </summary> //protected override int IssueEndTimeAppend //{ // get // { // return 1; // } //} //protected override int LotteryId //{ // get { return 25; } //} //protected override int EndSaleMinutes //{ // get // { // return -(ConfigHelper.GetEndSaleMinutes_wufencs-59); // } //} /****************************new******************************************/ /// <summary> /// 生成 /// </summary> public List <LotteryIssue> Generate(DateTime issueDate) { string spers = System.Configuration.ConfigurationManager.AppSettings["tw_bg_Builder_sper"];//构建台湾宾果 if (string.IsNullOrEmpty(spers)) { return(new List <LotteryIssue>()); } DateTime beginDate = DateTime.Now; issueDate = Convert.ToDateTime(issueDate.ToString("yyyy/MM/dd") + " 07:05:00"); int startIssueValue = 0; if (!DateTime.TryParse(spers.Split(',')[0], out beginDate)) { return(new List <LotteryIssue>()); } if (!int.TryParse(spers.Split(',')[1], out startIssueValue)) { return(new List <LotteryIssue>()); } //计算其实日期与当天相差天数 var days = issueDate.Subtract(beginDate).Days; startIssueValue = startIssueValue + 202 * days + days; //今天开始期数 int seconds = 60 * 5; //300秒一期 03:59秒结束, 07:00 继续开始 issueDate = Convert.ToDateTime(issueDate.ToString("yyyy/MM/dd") + " 07:05:00"); List <LotteryIssue> source = new List <LotteryIssue>(); for (var i = 1; i <= 202; i++) { DateTime endTime = issueDate.AddSeconds(seconds).AddSeconds(IssueEndTimeAppend); DateTime endSaleTime = endTime.AddSeconds(EndSaleMinutes); string issueCode = startIssueValue.ToString(); LotteryIssue issue = new LotteryIssue() { LotteryId = LotteryId, EndSaleTime = endSaleTime, EndTime = endTime, IssueCode = issueCode, LotteryTime = endTime, StartSaleTime = (i == 1 ? (Convert.ToDateTime(issueDate.AddDays(-1).ToString("yyyy/MM/dd") + " 23:55:00")) : issueDate.AddSeconds(-seconds)), StartTime = issueDate.AddSeconds(-seconds), }; source.Add(issue); issueDate = endTime.AddSeconds(-IssueEndTimeAppend); startIssueValue++; } return(source); }
/// <summary> /// 创建task ITrigger /// </summary> /// <param name="issue"></param> private ITrigger CreateTriggerDay(LotteryIssue issue) { string taskNum = issue.IssueCode + "," + issue.StartTime.ToString("yyyy/MM/dd"); string groupName = LotteryIssuesData.GetAllLotterys().Where(l => l.Id == issue.LotteryId).FirstOrDefault().LotteryCode; ITrigger trigger = new CronTriggerImpl(taskNum, groupName, issue.EndTime.Value.ToString("ss mm HH dd") + " * ?"); return(trigger); }
/// <summary> /// 生成期数 /// </summary> /// <param name="item"></param> /// <returns></returns> public void AddLotteryIssueCode(LotteryIssue item) { //var fs = this.mLotteryIssueService.GetAll().Where(i => i.IssueCode == item.IssueCode && i.LotteryId==item.LotteryId).FirstOrDefault(); //if (fs == null) //{ // this.mLotteryIssueService.Create(item); // this.mLotteryIssueService.Save(); //} this.mLotteryIssueService.AddLotteryIssueCode(item); }
/// <summary> /// 生成 /// </summary> public List <LotteryIssue> Generate(DateTime issueDate) { string spers = System.Configuration.ConfigurationManager.AppSettings["hlgBuilder_sper"];//构建黑龙江时时彩期数生成规则 if (string.IsNullOrEmpty(spers)) { return(new List <LotteryIssue>()); } DateTime beginDate = DateTime.Now; string beginStr = "02";//通过02开头 int startIssueValue = 0; if (!DateTime.TryParse(spers.Split(',')[0], out beginDate)) { return(new List <LotteryIssue>()); } if (!int.TryParse(spers.Split(',')[1], out startIssueValue)) { return(new List <LotteryIssue>()); } //计算其实日期与当天相差天数 var days = DateTime.Now.Subtract(beginDate).Days; startIssueValue = startIssueValue + 84 * days; //今天开始期数 //9.30分开始,一天84期 int seconds = 10 * 60; //十分钟一起 List <LotteryIssue> source = new List <LotteryIssue>(); for (var i = 1; i <= 84; i++) { DateTime endTime = beginDate.AddSeconds(seconds).AddSeconds(IssueEndTimeAppend); DateTime endSaleTime = endTime.AddSeconds(EndSaleMinutes); string issueCode = beginStr + startIssueValue.ToString("d5"); LotteryIssue issue = new LotteryIssue() { LotteryId = LotteryId, EndSaleTime = endSaleTime, EndTime = endTime, IssueCode = issueCode, LotteryTime = endTime, StartSaleTime = beginDate, StartTime = beginDate, }; source.Add(issue); beginDate = endTime.AddSeconds(-IssueEndTimeAppend); startIssueValue++; } return(source); }
public void Put(LotteryIssue result, int lotteryid) { lock (lockObj) { if (mCatch.Count > 10000) { mCatch = new Dictionary <string, LotteryIssue>(); } mCatch.Add(lotteryid + result.IssueCode, result); } }
private LotteryTicketModel SendLotteryTicket(BuyerIssue buyerIssue, LotteryIssue lotteryIssue, int sellType) { if (lotteryIssue.Stat != (int)IssueStat.Establish) { throw new Exception("当期已经结束,不再接受订单。"); } Random rd0 = new Random(); int a0 = rd0.Next(100) % 52; int b0 = rd0.Next(100) % 52; int c0 = rd0.Next(100) % 52; int d0 = rd0.Next(100) % 52; if (lotteryIssue.PoolCmd == 0) { var lp0 = GetTicketInLotteryPool0(a0, b0, c0, d0, buyerIssue.BuyerId, sellType); LotteryTicketModel model = new LotteryTicketModel() { A = lp0.A, B = lp0.B, C = lp0.C, D = lp0.D, BuyerId = lp0.BuyerId, PoolCmd = 0, Stat = lp0.Stat, Type = lp0.Type, OrderOn = DateTime.Now }; return(model); } else if (lotteryIssue.PoolCmd == 1) { var lp1 = GetTicketInLotteryPool1(a0, b0, c0, d0, buyerIssue.BuyerId, sellType); LotteryTicketModel model = new LotteryTicketModel() { A = lp1.A, B = lp1.B, C = lp1.C, D = lp1.D, BuyerId = lp1.BuyerId, PoolCmd = 1, Stat = lp1.Stat, Type = lp1.Type, OrderOn = DateTime.Now }; return(model); } throw new Exception("数据命令不匹配500244,不接受订单。"); }
protected List <LotteryIssue> Builder(DateTime beginDate, int seconds, int beginCode, int count) { List <LotteryIssue> source = new List <LotteryIssue>(); for (var i = 1; i <= count; i++) { DateTime endTime = beginDate.AddSeconds(seconds).AddSeconds(IssueEndTimeAppend); DateTime endSaleTime = endTime.AddSeconds(EndSaleMinutes); string code = beginCode.ToString(); while (i != 0) { if (code.Length < FormartCount) { code = "0" + code; } else { break; } } string issueCode = BuilderIssueCode(endTime, code); LotteryIssue issue = new LotteryIssue() { LotteryId = LotteryId, EndSaleTime = endSaleTime, EndTime = endTime, IssueCode = issueCode, LotteryTime = endTime, StartSaleTime = beginDate, StartTime = beginDate, }; source.Add(issue); beginDate = endTime.AddSeconds(-IssueEndTimeAppend); beginCode++; } return(source); }
/// <summary> /// 生成福彩3d /// </summary> /// <param name="issueDate"></param> /// <returns></returns> public List <LotteryIssue> Generate() { var array = Convert.ToInt32(StopDays);//对应期号 string dd = Convert.ToDateTime(OpenTime).ToString("HH:mm:ss"); string start = Convert.ToDateTime(OpenTime).AddMinutes(1).ToString("HH:mm:ss"); DateTime date = Convert.ToDateTime(OpenTime); int year = date.Year; List <LotteryIssue> result = new List <LotteryIssue>(); //按照一天一期的逻辑进行生成 while (true) { // DateTime endTime = Convert.ToDateTime(date.ToString("yyyy/MM/dd ") + dd); //开奖时间 DateTime beginTime = Convert.ToDateTime(date.ToString("yyyy/MM/dd ") + start); //开奖时间 DateTime endSaleTime = endTime.AddSeconds(EndSaleMinutes); string code = array.ToString(); LotteryIssue issue = new LotteryIssue() { LotteryId = LotteryId, EndSaleTime = endSaleTime, EndTime = endTime, IssueCode = code, LotteryTime = endTime, StartSaleTime = beginTime, StartTime = beginTime, }; result.Add(issue); array++; date = endTime.AddDays(1); if (year != date.Year) { break; } } return(result); }
private int maxIssueCount = 880;//总期数 /// <summary> /// 生成 /// </summary> public List <LotteryIssue> Generate(DateTime issueDate) { string spers = System.Configuration.ConfigurationManager.AppSettings["hg1_5Builder_sper"];//构建韩国1.5分彩 if (string.IsNullOrEmpty(spers)) { return(new List <LotteryIssue>()); } DateTime beginDate = DateTime.Now; issueDate = Convert.ToDateTime(issueDate.ToString("yyyy/MM/dd") + " 00:00:00"); int startIssueValue = 0; if (!DateTime.TryParse(spers.Split(',')[0], out beginDate)) { return(new List <LotteryIssue>()); } if (!int.TryParse(spers.Split(',')[1], out startIssueValue)) { return(new List <LotteryIssue>()); } //计算其实日期与当天相差天数 var days = issueDate.Subtract(beginDate).Days; startIssueValue = (startIssueValue + maxIssueCount * days); //今天开始期数 //00:00:00 int seconds = 90; //90秒一期 04:59秒结束, 07:00 继续开始 List <LotteryIssue> source = new List <LotteryIssue>(); for (var i = 1; i <= maxIssueCount; i++) { DateTime endTime = issueDate.AddSeconds(seconds).AddSeconds(IssueEndTimeAppend); DateTime endSaleTime = endTime.AddSeconds(EndSaleMinutes); string issueCode = startIssueValue.ToString(); LotteryIssue issue = new LotteryIssue() { LotteryId = LotteryId, EndSaleTime = endSaleTime, EndTime = endTime, IssueCode = issueCode, LotteryTime = endTime, StartSaleTime = issueDate, StartTime = issueDate, }; source.Add(issue); issueDate = endTime.AddSeconds(-IssueEndTimeAppend); if (issueDate.Hour == 5) { issueDate = Convert.ToDateTime(issueDate.ToString("yyyy/MM/dd 07:00:00")); } startIssueValue++; } return(source); }
/// <summary> /// 活的用户所有的彩票 /// </summary> /// <param name="lotteryBuyer"></param> /// <param name="Backtrack"></param> /// <returns></returns> public IList <LotteryTicketModel> GetLotteysByBuyer(LotteryBuyer lotteryBuyer, int Backtrack = 0) { var issues = _issueRepository.Table.OrderByDescending(i => i.CreatedOn).Take(Backtrack + 1); LotteryIssue issue = null; if (issues.Count() == Backtrack + 1) { throw new Exception("索引已经越界"); } else { issue = issues.Last(); } if (issue.Stat == (int)IssueStat.Accomplish) { throw new Exception("当前期没有生成。"); } List <LotteryTicketModel> models = new List <LotteryTicketModel>(); if (issue.PoolCmd == 0) { var lp0s = _pool0Repository.Table.Where(pl0 => pl0.BuyerId == lotteryBuyer.Id).ToList(); foreach (var lp0 in lp0s) { LotteryTicketModel model = new LotteryTicketModel() { A = lp0.A, B = lp0.B, C = lp0.C, D = lp0.D, BuyerId = lp0.BuyerId, Id = lp0.Id, IssueId = issue.Id, OrderOn = lp0.OrderTime, PoolCmd = issue.PoolCmd, Stat = lp0.Stat, Type = lp0.Type }; models.Add(model); } } else if (issue.PoolCmd == 1) { var lp1s = _pool1Repository.Table.Where(pl1 => pl1.BuyerId == lotteryBuyer.Id).ToList(); foreach (var lp1 in lp1s) { LotteryTicketModel model = new LotteryTicketModel() { A = lp1.A, B = lp1.B, C = lp1.C, D = lp1.D, BuyerId = lp1.BuyerId, Id = lp1.Id, IssueId = issue.Id, OrderOn = lp1.OrderTime, PoolCmd = issue.PoolCmd, Stat = lp1.Stat, Type = lp1.Type }; models.Add(model); } } else { throw new Exception("奖池命令错误!"); } return(models); }
public void PreLotteryDraws(LotteryIssue lotteryIssue, string LotteryParameters) { throw new NotImplementedException(); }