// 获得当期奖池结余 private long NextPrize(int resultCID) { long nowprize = new BCW.BQC.BLL.BQCList().nowprize(resultCID); //获取已经派出奖金 long _Price = new BCW.BQC.BLL.BQCPay().AllWinCentbyCID(resultCID); long sysprizeshouxu = Convert.ToInt64(nowprize * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); long Prices = nowprize - _Price - sysprizeshouxu;//当期结余=当期奖池-当期系统收取-当期派奖 return(Prices); }
//机器人兑奖 public void RobotCase() { string RoBot = ub.GetSub("RoBotID", xmlPath); string RoBotCost = ub.GetSub("ReBotCost", xmlPath); string[] RoBotID = RoBot.Split('#'); int meid = 0; for (int i = 0; i < RoBotID.Length; i++) { meid = Convert.ToInt32(RoBotID[i]); DataSet model2 = new BCW.BQC.BLL.BQCPay().GetList("id", "usID=" + meid + " and IsSpier=1 and WinCent > 0 and State!=2 "); if (model2 != null && model2.Tables[0].Rows.Count > 0) { for (int i2 = 0; i2 < model2.Tables[0].Rows.Count; i2++) { int pid = 0; try { pid = Convert.ToInt32(model2.Tables[0].Rows[0][i2]); } catch { } if (new BCW.BQC.BLL.BQCPay().ExistsReBot(pid, meid)) { if (new BCW.BQC.DAL.BQCPay().getState(pid) != 2) { //new BCW.SFC.BLL.SfPay().RoBotByID(pid); //操作币 BCW.BQC.Model.BQCPay model = new BCW.BQC.BLL.BQCPay().GetBQCPay(pid); int number = new BCW.BQC.BLL.BQCPay().GetCID(pid); long winMoney = Convert.ToInt64(model.WinCent); new BCW.BLL.User().UpdateiGold(meid, winMoney, "" + ub.GetSub("BQCName", xmlPath) + "兑奖-期号-" + number + "-标识ID" + pid + "(" + model.IsPrize + "等奖)"); new BCW.BQC.BLL.BQCPay().UpdateState(pid); builder.Append("" + ub.GetSub("BQCName", xmlPath) + "机器人" + meid + "自动兑奖!ok1<br />"); } } } } } }
// 获得奖池币 private long AllPrize(int resultCID) { //获取当前期数投注总额 long AllPrice = new BCW.BQC.BLL.BQCPay().AllPrice(resultCID); //获取已经派出奖金 long _Price = new BCW.BQC.BLL.BQCPay().AllWinCentbyCID(resultCID); //获取当前期数系统投注总额 long Sysprize = new BCW.BQC.DAL.BQCList().getsysprize(resultCID); //获取当期系统投注状态 int Sysprizestatue = new BCW.BQC.DAL.BQCList().getsysprizestatue(resultCID); //获取上一期滚存下来的奖池 int lastcid = 0; if (new BCW.BQC.BLL.BQCList().Exists(resultCID - 1)) { lastcid = (resultCID - 1); } else { lastcid = LastOpenCID(); } long Nextprize = new BCW.BQC.DAL.BQCList().getnextprize(lastcid); //获取当前期数系统回收总额 long SysWin = new BCW.BQC.BLL.BQCJackpot().SysWin(resultCID); //奖池总额 long Prices = 0; if (Sysprizestatue == 3 || Sysprizestatue == 1) { Prices = (AllPrice + Nextprize + Sysprize); } else { Prices = (AllPrice + Nextprize); } return(Prices); }
//开奖页面 public void CasePage() { #region 更新中奖 #region 开奖结果 //获取最新开奖结果 DataSet qi = new BCW.BQC.BLL.BQCList().GetList("CID,Result", " Result!='" + null + "' Order by CID Desc "); int CID = 0; string Result = string.Empty; CID = Convert.ToInt32(qi.Tables[0].Rows[0][0]); //最新开奖的期号 Result = Convert.ToString(qi.Tables[0].Rows[0][1]); //最新开奖结果 #endregion #region 判断中奖 string[] resultnum = Result.Split(','); //遍历表BQCPay,更新中奖 DataSet dspay = new BCW.BQC.BLL.BQCPay().GetList("CID,usID,vote,payCents,change,id", "CID=" + CID + " and State=0"); if (dspay != null && dspay.Tables[0].Rows.Count > 0) { for (int i = 0; i < dspay.Tables[0].Rows.Count; i++) { //对比数据:对比两数组相同数据出现的次数 int count = 0; //中奖标记,中奖注数 int num1 = 0; int num2 = 0; int pid = int.Parse(dspay.Tables[0].Rows[i]["id"].ToString()); int UsID = int.Parse(dspay.Tables[0].Rows[i]["UsID"].ToString()); string Vote = dspay.Tables[0].Rows[i]["Vote"].ToString(); long PayCents = Int64.Parse(dspay.Tables[0].Rows[i]["PayCents"].ToString()); int change = int.Parse(dspay.Tables[0].Rows[i]["change"].ToString()); bool IsWin = false; string[] buyvote = Vote.Split(','); //数据库存储的投注记录格式:(3-3/3-1),(3-3/1-3),(3-3),(3-3),(3-3),(3-3) string[] vote1 = buyvote[0].Replace("(", "").Replace(")", "").Split('/'); //第一场比赛投注结果:胜胜3-3和胜平3-1 string[] vote2 = buyvote[1].Replace("(", "").Replace(")", "").Split('/'); string[] vote3 = buyvote[2].Replace("(", "").Replace(")", "").Split('/'); string[] vote4 = buyvote[3].Replace("(", "").Replace(")", "").Split('/'); string[] vote5 = buyvote[4].Replace("(", "").Replace(")", "").Split('/'); string[] vote6 = buyvote[5].Replace("(", "").Replace(")", "").Split('/'); List <string[]> list1 = new List <string[]>(); list1.Add(vote1); list1.Add(vote2); list1.Add(vote3); list1.Add(vote4); list1.Add(vote5); list1.Add(vote6); string[] totalResult; //找到投注数据 totalResult = bianli(list1); for (int iresult = 0; iresult < totalResult.Length; iresult++) { string[] result = totalResult[iresult].Split(','); for (int j = 0; j < result.Length; j++) { //遍历开奖数据是否相同,相同则count+1 if (result[j].Equals(resultnum[j])) { count++; } if (resultnum[j].Contains("*")) { count++; } } //如果count出现的次数等于5,证明是二等奖 if (count == 5) { num2++; IsWin = true; } //如果count出现的次数等于6,证明是一等奖 if (count == 6) { num1++; IsWin = true; } count = 0; } if (IsWin == true) { if (num2 > 0) { BCW.Data.SqlHelper.ExecuteSql("update tb_BQCPay set ISPrize=2 ,ISPrize2=1, Prize2Num=" + num2 + " Where id=" + pid + "");//ISPrize2=1代表中二等奖,Prize2Num代表中二等奖的注数 } if (num1 > 0) { BCW.Data.SqlHelper.ExecuteSql("update tb_BQCPay set ISPrize=1 Where id=" + pid + "");//一等奖仅有一注 } } } } #endregion #region 奖池更新 (回收) if (Result != null) { if (new BCW.BQC.BLL.BQCList().getState(CID) == 0) { //判断奖池,小于200万就投入,大于不投入 if (AllPrize(CID) < Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml"))) { if (new BCW.BQC.BLL.BQCList().getsysstate(CID) == 0) { long all = AllPrize(CID) + Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml")); //更新奖池 new BCW.BQC.BLL.BQCList().updateNowprize(all, CID); new BCW.BQC.BLL.BQCList().UpdateSysstaprize(CID, 3, Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml"))); //把记录加到奖池表 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 8;//8表示系统首期有投入 mo.WinPrize = 0; mo.Prize = Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml")); mo.other = "系统首期(" + CID + "期)投入" + Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml")) + "|结余" + Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml")) + ub.Get("SiteBz"); mo.allmoney = all; mo.AddTime = DateTime.Now.AddMilliseconds(-10); mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); } else { //更新奖池 new BCW.BQC.BLL.BQCList().updateNowprize(AllPrize(CID), CID); } } else if (AllPrize(CID) > Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml")) && AllPrize(CID) < Convert.ToInt64(ub.GetSub("BQCMax", "/Controls/BQC.xml"))) { //更新奖池 new BCW.BQC.BLL.BQCList().updateNowprize(AllPrize(CID), CID); } //判断大于400万,有投入回收,无投入不回收 //if (AllPrize(model.CID) > Convert.ToInt64(ub.GetSub("BQCMax", "/Controls/BQC.xml"))) else { //如果之前期数有投入为回收就回收,无则不做操作 if (new BCW.BQC.BLL.BQCList().Existsysprize(CID)) { //未开奖当前投注期号 DataSet ds = new BCW.BQC.BLL.BQCList().GetList("TOP 1 CID", "State=1 and sysprizestatue=1 order by CID ASC"); int CIDh = 0; CIDh = int.Parse(ds.Tables[0].Rows[0][0].ToString()); new BCW.BQC.BLL.BQCList().UpdateSysstaprize(CID, 2, Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml")));//当期回收 long all = AllPrize(CID) - Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml")); //更新奖池 new BCW.BQC.BLL.BQCList().updateNowprize(all, CID); //把记录加到奖池表 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 7;//7表示系统有回收 mo.WinPrize = Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml")); mo.Prize = 0; mo.other = "系统回收" + Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml")); mo.allmoney = all; mo.AddTime = DateTime.Now.AddMilliseconds(-500); mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); if (CID != CIDh) { new BCW.BQC.BLL.BQCList().UpdateSysprizestatue(CIDh, 3);//表示被回收 } } else { //更新奖池 new BCW.BQC.BLL.BQCList().updateNowprize(AllPrize(CID), CID); } } } } #endregion #region 奖池手续更新 long Allmoney = new BCW.BQC.BLL.BQCList().nowprize(CID); //判断该期数有无中奖 if (!new BCW.BQC.BLL.BQCPay().Exists(CID, 0))//无中奖 { #region 无中奖奖池更新 if (!new BCW.BQC.BLL.BQCList().ExistsSysprize(CID)) //如果不存在系统投注 { if (!new BCW.BQC.BLL.BQCJackpot().Exists3(CID)) //开奖当前还没有数据 { BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 0; mo.WinPrize = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01);//系统收回%10 mo.Prize = 0; long a = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); long b = Convert.ToInt64(Allmoney) - a; mo.other = "系统收取手续" + a; mo.allmoney = b; mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); } } else//如果存在系统投注 { if (Allmoney > Convert.ToInt64(ub.GetSub("BQCMax", "/Controls/BQC.xml")))//最大奖池数 { if (!new BCW.BQC.BLL.BQCJackpot().Exists3(CID)) { BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 2;//表示回收投入的金额 mo.WinPrize = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); mo.Prize = 0; long a = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01) + Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml")); long b = Convert.ToInt64(Allmoney) - Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); mo.other = "系统收取手续" + Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); mo.allmoney = b; mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); } } else//奖池与最小奖池数 { if (!new BCW.BQC.BLL.BQCJackpot().Exists3(CID)) { BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 2; mo.WinPrize = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01);//系统收回%10 mo.Prize = 0; long a = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); long b = Convert.ToInt64(Allmoney) - a; mo.other = "系统收取手续" + a; mo.allmoney = b; mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); } //更新系统投注状态为3,表示小于最小额数不需要回收 // new BCW.BQC.BLL.BQCList().UpdateSysprizestatue(CID, 3); } } #endregion } else { #region 中奖奖池更新 if (!new BCW.BQC.BLL.BQCList().ExistsSysprize(CID)) //如果不存在系统投注 { if (!new BCW.BQC.BLL.BQCJackpot().Exists3(CID)) //开奖当前还没有数据 { BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 2; mo.WinPrize = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01);//系统收回%10 mo.Prize = 0; long a = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); long b = Convert.ToInt64(Allmoney) - a; mo.other = "系统收取手续" + a; mo.allmoney = b; mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); } } else//如果存在系统投注 { if (Allmoney > Convert.ToInt64(ub.GetSub("BQCMax", "/Controls/BQC.xml")))//最大奖池数 { if (!new BCW.BQC.BLL.BQCJackpot().Exists3(CID)) { BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 2;//表示回收投入的金额 mo.WinPrize = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); mo.Prize = 0; long a = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01) + Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml")); long b = Convert.ToInt64(Allmoney) - Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); mo.other = "系统收取手续" + Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); mo.allmoney = b; mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); } } else//奖池与最小奖池数 { if (!new BCW.BQC.BLL.BQCJackpot().Exists3(CID)) { BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 2; mo.WinPrize = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01);//系统收回%10 mo.Prize = 0; long a = Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01); long b = Convert.ToInt64(Allmoney) - a; mo.other = "系统收取手续" + a; mo.allmoney = b; mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); } //更新系统投注状态为3,表示小于最小额数不需要回收 // new BCW.BQC.BLL.BQCList().UpdateSysprizestatue(CID, 3); } } #endregion } #endregion #region 派奖 if (new BCW.BQC.DAL.BQCList().getState(CID) == 0) { DataSet pay = new BCW.BQC.BLL.BQCPay().GetList("usID,ISPrize,VoteNum,id", "CID=" + CID + " and State=0"); if (dspay != null && dspay.Tables[0].Rows.Count > 0) { for (int i = 0; i < pay.Tables[0].Rows.Count; i++) { int pid = int.Parse(pay.Tables[0].Rows[i]["id"].ToString()); int ISPrize = int.Parse(pay.Tables[0].Rows[i]["ISPrize"].ToString()); int UsID = int.Parse(pay.Tables[0].Rows[i]["usID"].ToString()); int VoteNum = int.Parse(pay.Tables[0].Rows[i]["VoteNum"].ToString()); int overridebyid1 = new BCW.BQC.BLL.BQCPay().VoteNum1(pid, CID); int overridebyid2 = new BCW.BQC.BLL.BQCPay().VoteNum2(pid, CID); //得到当前奖池 long All = new BCW.BQC.BLL.BQCList().nowprize(CID); long Now = NextPrize(CID); if (VoteNum == 1)//单式派奖 { //一等奖 if (new BCW.BQC.BLL.BQCPay().Exists1(pid, 1)) { //注数 long zhu = new BCW.BQC.BLL.BQCPay().countPrize(CID, 1); //费率 double lv = Convert.ToDouble(ub.GetSub("BQCOne", "/Controls/BQC.xml")) * 0.01; double allr = Math.Round(Convert.ToDouble(All * lv / Convert.ToDouble(zhu)), 2); long all = Convert.ToInt64(allr * overridebyid1); //添加奖池数据 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = UsID; mo.WinPrize = all; mo.Prize = 0; mo.other = "中一等奖" + Convert.ToString(all); mo.allmoney = (Now - all); mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); //动态 string wText = "[url=/bbs/uinfo.aspx?uid=" + UsID + "]" + new BCW.BLL.User().GetUsName(UsID) + "[/url]在第" + CID + "期[url=/bbs/game/BQC.aspx]" + GameName + "[/url]中一等奖" + all + "" + ub.Get("SiteBz") + ""; new BCW.BLL.Action().Add(1017, pid, UsID, "", wText); BCW.Data.SqlHelper.ExecuteSql("update tb_BQCPay set WinCent=(( select WinCent from tb_BQCPay where id=" + pid + ")+" + all + ") Where id=" + pid + ""); //发送内线 new BCW.BLL.Guest().Add(1, UsID, "", "恭喜您在第" + CID + "期" + "[URL=/bbs/game/BQC.aspx]" + GameName + "[/URL]" + "投注,中一等奖奖" + all + "" + ub.Get("SiteBz") + ",开奖为" + Result + "[URL=/bbs/game/BQC.aspx?act=case]马上兑奖[/URL]"); } //二等奖 if (new BCW.BQC.BLL.BQCPay().Exists2(pid, 2)) { //注数 int zhu = new BCW.BQC.BLL.BQCPay().countPrize2(CID); //费率 double lv = Convert.ToDouble(ub.GetSub("BQCTwo", "/Controls/BQC.xml")) * 0.01; double allr = Math.Round(Convert.ToDouble(All * lv / Convert.ToDouble(zhu)), 2); long all = Convert.ToInt64(allr * overridebyid2); //添加奖池数据 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = UsID; mo.WinPrize = all; mo.Prize = 0; mo.other = "中二等奖" + Convert.ToString(all); mo.allmoney = (Now - all); mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); BCW.Data.SqlHelper.ExecuteSql("update tb_BQCPay set WinCent=(( select WinCent from tb_BQCPay where id=" + pid + ")+" + all + ") Where id=" + pid + ""); //动态 string wText = "[url=/bbs/uinfo.aspx?uid=" + UsID + "]" + new BCW.BLL.User().GetUsName(UsID) + "[/url]在第" + CID + "期[url=/bbs/game/BQC.aspx]" + GameName + "[/url]中二等奖" + all + "" + ub.Get("SiteBz") + ""; new BCW.BLL.Action().Add(1017, pid, UsID, "", wText); //发送内线 new BCW.BLL.Guest().Add(1, UsID, "", "恭喜您在第" + CID + "期" + "[URL=/bbs/game/BQC.aspx]" + GameName + "[/URL]" + "投注,中二等奖奖" + all + "" + ub.Get("SiteBz") + ",开奖为" + Result + "[URL=/bbs/game/BQC.aspx?act=case]马上兑奖[/URL]"); } } else//复式派奖 { //一等奖 if (new BCW.BQC.BLL.BQCPay().Exists1(pid, 1)) { //注数 long zhu = new BCW.BQC.BLL.BQCPay().countPrize(CID, 1); //费率 double lv = Convert.ToDouble(ub.GetSub("BQCOne", "/Controls/BQC.xml")) * 0.01; double allr = Math.Round(Convert.ToDouble(All * lv / Convert.ToDouble(zhu)), 2); long all = Convert.ToInt64(allr * overridebyid1); //添加奖池数据 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = UsID; mo.WinPrize = all; mo.Prize = 0; mo.other = "中一等奖" + Convert.ToString(all); mo.allmoney = (Now - all); mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); //动态 string wText = "[url=/bbs/uinfo.aspx?uid=" + UsID + "]" + new BCW.BLL.User().GetUsName(UsID) + "[/url]在第" + CID + "期[url=/bbs/game/BQC.aspx]" + GameName + "[/url]中一等奖" + all + "" + ub.Get("SiteBz") + ""; new BCW.BLL.Action().Add(1017, pid, UsID, "", wText); BCW.Data.SqlHelper.ExecuteSql("update tb_BQCPay set WinCent=(( select WinCent from tb_BQCPay where id=" + pid + ")+" + all + ") Where id=" + pid + ""); //发送内线 new BCW.BLL.Guest().Add(1, UsID, "", "恭喜您在第" + CID + "期" + "[URL=/bbs/game/BQC.aspx]" + GameName + "[/URL]" + "投注,中一等奖奖" + all + "" + ub.Get("SiteBz") + ",开奖为" + Result + "[URL=/bbs/game/BQC.aspx?act=case]马上兑奖[/URL]"); } //二等奖 if (new BCW.BQC.BLL.BQCPay().Exists2(pid, 2)) { //注数 int zhu = new BCW.BQC.BLL.BQCPay().countPrize2(CID); //费率 double lv = Convert.ToDouble(ub.GetSub("BQCTwo", "/Controls/BQC.xml")) * 0.01; double allr = Math.Round(Convert.ToDouble(All * lv / Convert.ToDouble(zhu)), 2); long all = Convert.ToInt64(allr * overridebyid2); //添加奖池数据 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = UsID; mo.WinPrize = all; mo.Prize = 0; mo.other = "中二等奖" + Convert.ToString(all); mo.allmoney = (new BCW.BQC.BLL.BQCJackpot().Getallmoney(CID) - all); mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); BCW.Data.SqlHelper.ExecuteSql("update tb_BQCPay set WinCent=(( select WinCent from tb_BQCPay where id=" + pid + ")+" + all + ") Where id=" + pid + ""); //动态 string wText = "[url=/bbs/uinfo.aspx?uid=" + UsID + "]" + new BCW.BLL.User().GetUsName(UsID) + "[/url]在第" + CID + "期[url=/bbs/game/BQC.aspx]" + GameName + "[/url]中二等奖" + all + "" + ub.Get("SiteBz") + ""; new BCW.BLL.Action().Add(1017, pid, UsID, "", wText); //发送内线 new BCW.BLL.Guest().Add(1, UsID, "", "恭喜您在第" + CID + "期" + "[URL=/bbs/game/BQC.aspx]" + GameName + "[/URL]" + "投注,中二等奖奖" + all + "" + ub.Get("SiteBz") + ",开奖为" + Result + "[URL=/bbs/game/BQC.aspx?act=case]马上兑奖[/URL]"); } } } } } #endregion #region 更新奖池结余,更新系统收取手续 if (new BCW.BQC.DAL.BQCList().getState(CID) == 0) { //更新当期系统结余奖池 new BCW.BQC.DAL.BQCList().UpdateNextprize(CID, NextPrize(CID)); //更新当期系统收取手续 new BCW.BQC.DAL.BQCList().Updatesysdayprize(CID, Convert.ToInt64(Allmoney * Convert.ToInt64(ub.GetSub("BQCsys", "/Controls/BQC.xml")) * 0.01)); } #endregion #region 奖池滚存 int newcid = 0; if (new BCW.BQC.DAL.BQCList().ExistsCID(CID + 1)) { newcid = (CID + 1); } else { newcid = FirstNewCID(); } if (!new BCW.BQC.DAL.BQCJackpot().Existsgun(CID)) { //把奖池滚存记录下来 BCW.BQC.Model.BQCJackpot mos = new BCW.BQC.Model.BQCJackpot(); mos.usID = 5; mos.WinPrize = 0; mos.Prize = 0; mos.other = "第" + CID + "期滚存" + NextPrize(CID) + ub.Get("SiteBz") + "到" + newcid + "期|结余0" + ub.Get("SiteBz"); mos.allmoney = 0; mos.AddTime = DateTime.Now; mos.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mos); } if (!new BCW.BQC.DAL.BQCJackpot().Existsgun1(newcid)) { //把奖池滚存记录下来 BCW.BQC.Model.BQCJackpot mos = new BCW.BQC.Model.BQCJackpot(); mos.usID = 6; mos.WinPrize = 0; mos.Prize = 0; mos.other = "得到第" + CID + "期滚存" + NextPrize(CID) + ub.Get("SiteBz") + "|结余" + NextPrize(CID) + "" + ub.Get("SiteBz"); mos.allmoney = 0; mos.AddTime = Convert.ToDateTime("2000-10-10 10:10:10"); mos.CID = (newcid); new BCW.BQC.BLL.BQCJackpot().Add(mos); } #endregion #region 遍历奖池表 (BQCJackpot),更新预售期的奖池 //遍历表BQCJackpot,更新预售期的奖池 if (new BCW.BQC.DAL.BQCList().ExistsCID((newcid))) { DataSet nextPP = new BCW.BQC.BLL.BQCJackpot().GetList("id,usID,Prize,WinPrize,other,allmoney,AddTime,CID", "CID=" + (newcid) + " "); if (nextPP != null && nextPP.Tables[0].Rows.Count > 0) { for (int i = 0; i < nextPP.Tables[0].Rows.Count; i++) { int pid = int.Parse(nextPP.Tables[0].Rows[i]["id"].ToString()); int UsID = int.Parse(nextPP.Tables[0].Rows[i]["usID"].ToString()); long Prize = Int64.Parse(nextPP.Tables[0].Rows[i]["Prize"].ToString()); long WinPrize = Int64.Parse(nextPP.Tables[0].Rows[i]["WinPrize"].ToString()); string other = nextPP.Tables[0].Rows[i]["other"].ToString(); long allmoney = Int64.Parse(nextPP.Tables[0].Rows[i]["allmoney"].ToString()); DateTime AddTime = DateTime.Parse(nextPP.Tables[0].Rows[i]["AddTime"].ToString()); int CID1 = int.Parse(nextPP.Tables[0].Rows[i]["CID"].ToString()); long PP = 0; if (new BCW.BQC.BLL.BQCList().getsysstate((newcid)) == 1) { PP = (allmoney + NextPrize(CID) + Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml"))); } else { PP = (allmoney + NextPrize(CID)); } //更新奖池 if (other.Contains("预售")) { BCW.Data.SqlHelper.ExecuteSql("update tb_BQCJackpot set allmoney='" + PP + "' Where id='" + pid + "' "); BCW.Data.SqlHelper.ExecuteSql("update tb_BQCJackpot set other=replace(other,'预售','') where id='" + pid + "' "); } } } else { } } #endregion #region 系统投入 if (new BCW.BQC.DAL.BQCList().getState(CID) == 0) { if (new BCW.BQC.BLL.BQCList().Exists((newcid))) { long paycent = new BCW.BQC.BLL.BQCList().GetPrice("sum(PayCent)", " CID =" + (newcid) + " ");//消费 if ((NextPrize(CID) + paycent) < Convert.ToInt64(ub.GetSub("BQCMin", "/Controls/BQC.xml"))) { new BCW.BQC.BLL.BQCList().UpdateSysstaprize((newcid), 1, Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml"))); //把记录加到奖池表 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = 1;//1表示系统有投入 mo.WinPrize = 0; mo.Prize = Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml")); mo.other = "系统投入" + Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml")); mo.allmoney = (Convert.ToInt64(ub.GetSub("BQCSend", "/Controls/BQC.xml")) + NextPrize(CID)); mo.AddTime = DateTime.Now; mo.CID = (newcid); new BCW.BQC.BLL.BQCJackpot().Add(mo); } } } #endregion #region 完成返彩后正式更新该期为结束 if (new BCW.BQC.BLL.BQCList().getState(CID) == 0) { BCW.Data.SqlHelper.ExecuteSql("update tb_BQCList set State=1 Where CID=" + CID + ""); BCW.Data.SqlHelper.ExecuteSql("update tb_BQCPay set State=1 Where CID=" + CID + ""); } #endregion #endregion }
//机器人ROBOT public void Robot() { string xml = ub.GetSub("IsBot", xmlPath); int buycount = int.Parse(ub.GetSub("RoBotCount", xmlPath));//次数 if (xml == "1") { string RoBot = ub.GetSub("RoBotID", xmlPath); string[] RoBotID = RoBot.Split('#'); int n = RoBot.Split('#').Length; Random rr = new Random(); int aa = 0; aa = rr.Next(0, n); string ss = RoBotID[aa]; int usID = Convert.ToInt32(ss); ChanageOnline(Convert.ToInt32(RoBotID[aa])); string mename = new BCW.BLL.User().GetUsName(usID);//用户姓名 //未开奖当前投注期号 DataSet ds1 = new BCW.BQC.BLL.BQCList().GetList("TOP 1 CID", "State=0 order by CID ASC"); int CID = 0; DateTime AddTime = DateTime.Now; try { CID = int.Parse(ds1.Tables[0].Rows[0][0].ToString()); } catch { } BCW.BQC.Model.BQCList mod = new BCW.BQC.BLL.BQCList().GetBQCList1(CID); if (mod.Sale_StartTime < DateTime.Now && mod.EndTime > DateTime.Now) { //计数出该机器人投注的次数是否大于xml限定次数 int countrebot = new BCW.BQC.BLL.BQCPay().GetBQCRobotCount("usID=" + usID + " and IsSpier=1 and CID=" + CID + ""); if (countrebot <= buycount) { long bei = 0; string[] ppp = ub.GetSub("RoBotCost", xmlPath).Split('#'); Random ranm = new Random(); int k = ranm.Next(0, (ppp.Length)); bei = Convert.ToInt32(ppp[k]); long Price1 = Utils.ParseInt64(ub.GetSub("BQCmallPay", xmlPath)) * bei; string SFprice = ub.GetSub("BQCprice", xmlPath); //是否刷屏 long small = Convert.ToInt64(ub.GetSub("BQCmallPay", xmlPath)); long big = Convert.ToInt64(ub.GetSub("BQCBigPay", xmlPath)); string appName = "BQC"; int Expir = Utils.ParseInt(ub.GetSub("BQCExpir", xmlPath));//5 //BCW.User.Users.IsFresh(appName, Expir); string GameName = ub.GetSub("BQCName", xmlPath); //个人每期限投 long xPrices = 1; xPrices = Utils.ParseInt64(ub.GetSub("BQCCprice", xmlPath)); Random ran = new Random(); int[] a = new int[] { 0, 1, 3 }; string votenum1 = string.Empty; string votenum = string.Empty; string s = string.Empty; for (int j = 0; j < 12; j++) { s = a[ran.Next(0, 3)].ToString(); if (j == 0) { votenum1 += "(" + s + "-"; } else if (j == 11) { votenum1 += s + ")"; } else { if (j % 2 == 0) { votenum1 += s + "-"; } else { votenum1 += s + "),("; } } } votenum = votenum1;//得到随机投注 //支付安全提示 string[] p_pageArr = { "CID", "Price", "bei", "Price1", "votenum", "ptype", "act", "info" }; long gold = new BCW.BLL.User().GetGold(usID); if (gold < Price1) { builder.Append("您(" + usID + ")的" + ub.Get("SiteBz") + "不足购买此下注(6场半)"); } if (gold < 0) { builder.Append("您的" + ub.Get("SiteBz") + "不足(6场半)"); } if (xPrices > 0) { int oPrices = 0; DataSet ds = null; try { ds = new BCW.SFC.BLL.SfPay().GetList("PayCents", "UsID=" + usID + " and CID=" + CID + ""); } catch { Utils.Error("!", ""); } DataTable dt = ds.Tables[0]; foreach (DataRow dr in dt.Rows) { int drs = int.Parse(dr[0].ToString()); oPrices = oPrices + drs; } if (oPrices + Price1 > xPrices) { if (oPrices >= xPrices) { Utils.Error("您(" + usID + ")本期下注已达上限,请等待下期...", ""); } else { Utils.Error("您(" + usID + ")本期最多还可以下注" + (xPrices - oPrices) + "" + ub.Get("SiteBz") + "", ""); } } } if (gold > Price1 && gold > 0 && CID != 0) { BCW.BQC.Model.BQCPay modelpay = new BCW.BQC.Model.BQCPay(); modelpay.usID = usID; modelpay.Vote = votenum; //投注情况 modelpay.VoteNum = 1; //投注总数 modelpay.IsPrize = 0; //中奖情况 modelpay.IsSpier = 1; //机器人 modelpay.AddTime = DateTime.Now; modelpay.CID = CID; //期号 modelpay.OverRide = Convert.ToInt32(bei); //投注倍率 modelpay.PayCents = Price1; //投注总额 modelpay.State = 0; //兑奖 modelpay.PayCent = Convert.ToInt32(ub.GetSub("BQCmallPay", xmlPath)); modelpay.change = 0; new BCW.BQC.BLL.BQCPay().Add(modelpay); //添加奖池数据 BCW.BQC.Model.BQCJackpot mo = new BCW.BQC.Model.BQCJackpot(); mo.usID = usID; mo.WinPrize = 0; mo.Prize = Price1; mo.other = "下注" + Convert.ToString(Price1); mo.allmoney = AllPrize(CID); mo.AddTime = DateTime.Now; mo.CID = CID; new BCW.BQC.BLL.BQCJackpot().Add(mo); int maxid = new BCW.BQC.BLL.BQCPay().GetMaxId(usID); new BCW.BLL.User().UpdateiGold(usID, mename, -Price1, "" + ub.GetSub("BQCName", xmlPath) + "第" + CID + "期投注" + votenum + "标识id" + (maxid - 1));//半全场----更新排行榜与扣钱 //更新每期下注额度 new BCW.BQC.BLL.BQCList().UpdatePayCent(new BCW.BQC.BLL.BQCPay().PayCents(CID), CID); //更新每期下注数 new BCW.BQC.BLL.BQCList().UpdatePayCount(new BCW.BQC.BLL.BQCPay().VoteNum(CID), CID); string wText = "[url=/bbs/uinfo.aspx?uid=" + usID + "]" + mename + "[/url]在[url=/bbs/game/BQC.aspx]" + GameName + "[/url]下注**" + "" + ub.Get("SiteBz") + "";//+ Price1 new BCW.BLL.Action().Add(1017, 1, usID, "", wText); Response.Write("<br /><span style='color:red;font-size:20px'>6场半机器人(" + usID + ")正在执行下注任务!</span>"); } } else { Response.Write("<br /><span style='color:red;font-size:20px'>6场半机器人(" + usID + ")已经完成下注任务!当期下注次数已达上限!</span>"); } } else { Response.Write("<br /><span style='color:red;font-size:20px'>6场半机器人未开始工作,等待当期结束,下一期开始投注" + CID + "</span>"); } } }