private DataTable GetWinNumberLotteryID(int LotteryID) { string Key = "Home_Room_Buy_GetWinNumberLotteryID" + LotteryID.ToString(); DataTable dt = Shove._Web.Cache.GetCacheAsDataTable(Key); if (dt == null) { dt = new DAL.Tables.T_WinTypes().Open("Name", "LotteryID=" + LotteryID.ToString(), "ID desc"); if (dt == null || dt.Rows.Count == 0) { return null; } } Shove._Web.Cache.SetCache(Key,dt, 360000); return dt; }
private void BindDataForWinMoney() { if (ddlLottery.Items.Count < 1) { return; } DataTable dt = new DAL.Tables.T_WinTypes().Open("", "LotteryID = " + Shove._Web.Utility.FilteSqlInfusion(ddlLottery.SelectedValue), "[Order]"); if (dt == null) { PF.GoError(ErrorNumber.DataReadWrite, "数据库繁忙,请重试", this.GetType().BaseType.FullName); return; } g.DataSource = dt.DefaultView; g.DataBind(); }
// 接收奖期通知 private void IsuseNotice(string TransMessage) { System.Xml.XmlDocument XmlDoc = new XmlDocument(); try { XmlDoc.Load(new StringReader(TransMessage)); } catch { } DAL.Tables.T_Isuses t_Isuses = new DAL.Tables.T_Isuses(); string Body = TransMessage.Substring(TransMessage.IndexOf("<elements"), TransMessage.LastIndexOf("</elements>") - TransMessage.IndexOf("<elements")) + "</elements>"; DataSet ds = new DataSet(); ds.ReadXml(new StringReader(Body)); if (ds == null) { return; } if (ds.Tables.Count == 0) { return; } DataTable dt = ds.Tables[0]; if (dt.Rows.Count < 1) { return; } string MessageID = ""; for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; string LotteryName = dr["lotteryid"].ToString(); int LotteryID = GetLotteryID(LotteryName); string IsuseName = GetIsusesNameToCaiyou(LotteryID.ToString(), dr["issue"].ToString()); string Status = dr["status"].ToString(); string StartTime = dr["starttime"].ToString(); string EndTime = dr["endtime"].ToString(); string WinNumber = ""; if (Shove._Convert.StrToInt(Status, 0) > 1) { try { WinNumber = GetWinNumber(LotteryID, dr["bonuscode"].ToString()); } catch { } } if ((LotteryID < 0) || (String.IsNullOrEmpty(IsuseName))) { continue; } if (t_Isuses.GetCount("LotteryID = " + LotteryID.ToString() + " and [Name] = '" + Shove._Web.Utility.FilteSqlInfusion(IsuseName) + "' and year(StartTime) = YEAR(GETDATE())") < 1) { DateTime _StartTime = DateTime.Now; DateTime _EndTime = DateTime.Now; try { _StartTime = DateTime.Parse(StartTime); _EndTime = DateTime.Parse(EndTime); } catch { continue; } long IsuseID = -1; string ReturnDescription = ""; if (DAL.Procedures.P_IsuseAdd(LotteryID, IsuseName, _StartTime, _EndTime, "", ref IsuseID, ref ReturnDescription) < 0) { continue; } if (IsuseID < 0) { continue; } } DataTable dtIsuse = t_Isuses.Open("ID, State, WinLotteryNumber", "LotteryID = " + LotteryID.ToString() + " and [Name] = '" + Shove._Web.Utility.FilteSqlInfusion(IsuseName) + "' and year(StartTime) = YEAR(GETDATE())", ""); if ((dtIsuse == null) || (dtIsuse.Rows.Count < 1)) { continue; } if (Status == "1") { int ReturnValue = 0; string ReturnDescprtion = ""; if (DAL.Procedures.P_ElectronTicketAgentSchemeQuash(Shove._Convert.StrToLong(dtIsuse.Rows[0]["ID"].ToString(), 0), ref ReturnValue, ref ReturnDescprtion) < 0) { new Log("ElectronTicket\\ZCW").Write("电子票方案撤单错误_P_ElectronTicketAgentSchemeQuash"); continue; } } bool isHasUpdate = false; if (dtIsuse.Rows[0]["State"].ToString() != Status) { isHasUpdate = true; } if (isHasUpdate) { int ReturnValue = 0; string ReturnDescprtion = ""; if (DAL.Procedures.P_IsuseUpdate(LotteryID, Shove._Web.Utility.FilteSqlInfusion(IsuseName), Shove._Convert.StrToShort(Status, 0), Shove._Convert.StrToDateTime(StartTime, DateTime.Now.ToString()), Shove._Convert.StrToDateTime(EndTime, DateTime.Now.ToString()), DateTime.Now, WinNumber, ref ReturnValue, ref ReturnDescprtion) < 0) { new Log("ElectronTicket\\ZCW").Write("电子票撤销追号错误P_IsuseEdit。"); } if (ReturnValue < 0) { new Log("ElectronTicket\\ZCW").Write(ReturnDescprtion); } } if (!String.IsNullOrEmpty(WinNumber) && (dtIsuse.Rows[0]["WinLotteryNumber"].ToString() != WinNumber)) { DataTable dtWinTypes = new DAL.Tables.T_WinTypes().Open("", "LotteryID =" + LotteryID.ToString(), ""); double[] WinMoneyList = new double[dtWinTypes.Rows.Count * 2]; for (int k = 0; k < dtWinTypes.Rows.Count; k++) { if (Shove._Convert.StrToDouble(dtWinTypes.Rows[k]["DefaultMoney"].ToString(), 1) < 1) { MessageID = GetFromXPath(TransMessage, "message/header/messengerid"); ReNotice(MessageID, "13008"); return; } WinMoneyList[k * 2] = Shove._Convert.StrToDouble(dtWinTypes.Rows[k]["DefaultMoney"].ToString(), 1); WinMoneyList[k * 2 + 1] = Shove._Convert.StrToDouble(dtWinTypes.Rows[k]["DefaultMoneyNoWithTax"].ToString(), 1); } #region 开奖第一步 DataTable dtWin = null; dtWin = new DAL.Tables.T_Schemes().Open("LotteryNumber,PlayTypeID,Multiple,ID", "isOpened = 0 and IsuseID = " + dtIsuse.Rows[0]["ID"].ToString(), "[ID]"); if (dtWin == null) { return; } for (int y = 0; y < dtWin.Rows.Count; y++) { string LotteryNumber = ""; try { LotteryNumber = dtWin.Rows[y]["LotteryNumber"].ToString(); } catch { } string Description = ""; double WinMoneyNoWithTax = 0; try { double WinMoney = new SLS.Lottery()[LotteryID].ComputeWin(LotteryNumber, WinNumber, ref Description, ref WinMoneyNoWithTax, int.Parse(dtWin.Rows[y]["PlayTypeID"].ToString()), WinMoneyList); Shove.Database.MSSQL.ExecuteNonQuery("update T_Schemes set PreWinMoney = @p1, PreWinMoneyNoWithTax = @p2, EditWinMoney = @p3, EditWinMoneyNoWithTax = @p4, WinDescription = @p5 where [ID] = " + dtWin.Rows[y]["ID"].ToString(), new Shove.Database.MSSQL.Parameter("p1", SqlDbType.Money, 0, ParameterDirection.Input, WinMoney * Shove._Convert.StrToInt(dtWin.Rows[y]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p2", SqlDbType.Money, 0, ParameterDirection.Input, WinMoneyNoWithTax * Shove._Convert.StrToInt(dtWin.Rows[y]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p3", SqlDbType.Money, 0, ParameterDirection.Input, WinMoney * Shove._Convert.StrToInt(dtWin.Rows[y]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p4", SqlDbType.Money, 0, ParameterDirection.Input, WinMoneyNoWithTax * Shove._Convert.StrToInt(dtWin.Rows[y]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p5", SqlDbType.VarChar, 0, ParameterDirection.Input, Description)); } catch { continue; } } #endregion #region 开奖第二步 string OpenAffiche = new OpenAfficheTemplates()[LotteryID]; int SchemeCount, QuashCount, WinCount, WinNoBuyCount; bool isEndOpen = false; int ReturnValue = 0; string ReturnDescription = ""; while (!isEndOpen) { SchemeCount = 0; QuashCount = 0; WinCount = 0; WinNoBuyCount = 0; // 总方案数,处理时撤单数,中奖数,中奖但未成功数 ReturnValue = 0; ReturnDescription = ""; DataSet dsWin = null; DAL.Procedures.P_Win(ref dsWin, Shove._Convert.StrToLong(dtIsuse.Rows[0]["ID"].ToString(), 0), WinNumber, OpenAffiche, 1, true, ref SchemeCount, ref QuashCount, ref WinCount, ref WinNoBuyCount, ref isEndOpen, ref ReturnValue, ref ReturnDescription); } #endregion } } MessageID = GetFromXPath(TransMessage, "message/header/messengerid"); ReNotice(MessageID, "13008"); }
private DataTable GetWinNumberLotteryID(int LotteryID) { string key = "Home_Room_Buy_GetWinNumberLotteryID" + LotteryID.ToString(); DataTable cacheAsDataTable = Shove._Web.Cache.GetCacheAsDataTable(key); if (cacheAsDataTable == null) { cacheAsDataTable = new Tables.T_WinTypes().Open("Name", "LotteryID=" + LotteryID.ToString(), "ID desc"); if ((cacheAsDataTable == null) || (cacheAsDataTable.Rows.Count == 0)) { return null; } } Shove._Web.Cache.SetCache(key, cacheAsDataTable, 0x57e40); return cacheAsDataTable; }
private void IsuseOpenNotice(string Transmessage) { XmlDocument document = new XmlDocument(); XmlNodeList elementsByTagName = null; XmlNodeList list2 = null; XmlNodeList list3 = null; try { document.Load(new StringReader(Transmessage)); elementsByTagName = document.GetElementsByTagName("*"); list2 = document.GetElementsByTagName("bonusItem"); list3 = document.GetElementsByTagName("issue"); } catch { } if (elementsByTagName != null) { string winNumber = ""; for (int i = 0; i < elementsByTagName.Count; i++) { if ((elementsByTagName[i].Name.ToUpper() == "BODY") && (elementsByTagName[i].FirstChild.Name.ToUpper() == "BONUSNOTIFY")) { winNumber = elementsByTagName[i].FirstChild.Attributes["bonusNumber"].InnerText; } } if (list3 == null) { base.Response.End(); } else { string messageID = elementsByTagName[0].Attributes["id"].Value; string input = list3[0].Attributes["number"].Value; string lotteryName = list3[0].Attributes["gameName"].Value; int LotteryID = this.GetLotteryID(lotteryName); string str5 = this.GetWinNumber(LotteryID, winNumber); DataTable table = new Tables.T_Isuses().Open("", " [Name] = '" + Utility.FilteSqlInfusion(input) + "' and LotteryID = " + LotteryID.ToString() + " and IsOpened = 0", ""); if ((table == null) || (table.Rows.Count < 1)) { base.Response.End(); } else { string str = table.Rows[0]["ID"].ToString(); new Tables.T_Isuses { WinLotteryNumber = { Value = str5 }, OpenOperatorID = { Value = 1 } }.Update(" ID = " + str); string bonusXML = "<Schemes>"; string agentBonusXML = "<Schemes>"; if ((list2 != null) && (list2.Count > 0)) { string s = Transmessage.Substring(Transmessage.IndexOf("<bonusNotify"), Transmessage.LastIndexOf("</body>") - Transmessage.IndexOf("<bonusNotify")); DataSet set = new DataSet(); try { set.ReadXml(new StringReader(s)); } catch (Exception exception) { new Log(@"ElectronTicket\HPSH").Write("电子票开奖,第 " + input + " 期解析开奖数据错误:" + exception.Message); base.Response.End(); return; } if ((set == null) || (set.Tables.Count < 3)) { new Log(@"ElectronTicket\HPSH").Write("电子票开奖,第 " + input + " 期开奖数据格式不符合要求。"); base.Response.End(); return; } DataTable source = set.Tables[2]; DataTable table3 = MSSQL.Select("SELECT SchemeID, AgentID, SchemesMultiple as Multiple, Identifiers FROM V_ElectronTicketAgentSchemesSendToCenter WHERE (IsuseID = " + str + ") UNION ALL SELECT SchemeID, 0 AS AgentID, SchemesMultiple as Multiple, Identifiers FROM V_SchemesSendToCenter WHERE (IsuseID = " + str + ")", new MSSQL.Parameter[0]); if (table3 == null) { new Log(@"ElectronTicket\HPSH").Write("电子票开奖,第 " + input + " 期,读取本地方案错误。"); base.Response.End(); return; } try { foreach (var type in from NewDt in (from NewDt in (from NewDtTickets in source.AsEnumerable() join NewdtScheme in table3.AsEnumerable() on NewDtTickets.Field<string>("ticketID") equals NewdtScheme.Field<string>("Identifiers") select new { ID = NewdtScheme.Field<long>("SchemeID"), AgentID = NewdtScheme.Field<long>("AgentID"), Multiple = NewdtScheme.Field<int>("Multiple"), Bonus = _Convert.StrToDouble(NewDtTickets.Field<string>("money"), 0.0), BonusLevel = NewDtTickets.Field<string>("bonusLevel"), Size = _Convert.StrToInt(NewDtTickets.Field<string>("size"), 1) }).AsQueryable() group NewDt by new { NewDt.ID, NewDt.BonusLevel, NewDt.AgentID, NewDt.Multiple } into gg select new { ID = gg.Key.ID, AgentID = gg.Key.AgentID, Multiple = gg.Key.Multiple, Bonus = gg.Sum(NewDt => NewDt.Bonus), BonusLevel = this.GetSchemeWinDescription(gg.Key.BonusLevel, LotteryID, gg.Sum(NewDt => NewDt.Size) / gg.Key.Multiple) }).AsQueryable() group NewDt by new { ID = NewDt.ID, Multiple = NewDt.Multiple, AgentID = NewDt.AgentID } into t_dtSchemes select new { SchemeID = t_dtSchemes.Key.ID, AgentID = t_dtSchemes.Key.AgentID, Multiple = t_dtSchemes.Key.Multiple, Bonus = t_dtSchemes.Sum(NewDt => NewDt.Bonus), BonusLevel = t_dtSchemes.Merge(NewDt => NewDt.BonusLevel) + ((t_dtSchemes.Key.Multiple != 1) ? ("(" + t_dtSchemes.Key.Multiple.ToString() + "倍)") : "") }) { string str10; if (type.AgentID == 0L) { str10 = bonusXML; bonusXML = str10 + "<Scheme SchemeID=\"" + type.SchemeID.ToString() + "\" WinMoney=\"" + type.Bonus.ToString() + "\" WinDescription=\"" + type.BonusLevel + "\" />"; } else { str10 = agentBonusXML; agentBonusXML = str10 + "<Scheme SchemeID=\"" + type.SchemeID.ToString() + "\" WinMoney=\"" + type.Bonus.ToString() + "\" WinDescription=\"" + type.BonusLevel + "\" />"; } } } catch (Exception exception2) { new Log(@"ElectronTicket\HPSH").Write("电子票开奖,第 " + input + " 期详细中奖数据解析错误:" + exception2.Message); base.Response.End(); return; } } bonusXML = bonusXML + "</Schemes>"; agentBonusXML = agentBonusXML + "</Schemes>"; table = new Tables.T_Isuses().Open("", "[ID] = " + str + " and IsOpened = 0", ""); if ((table == null) || (table.Rows.Count < 1)) { base.Response.End(); } else { int returnValue = 0; string returnDescription = ""; DataSet ds = null; int num5 = 0; int num6 = -1; string appSettingsString = WebConfig.GetAppSettingsString("ConnectionString"); if (appSettingsString.StartsWith("0x78AD")) { appSettingsString = Encrypt.Decrypt3DES(PF.GetCallCert(), appSettingsString.Substring(6), PF.DesKey); } SqlConnection conn = MSSQL.CreateDataConnection(appSettingsString + ";Connect Timeout=150;"); if (conn != null) { while ((num6 < 0) && (num5 < 5)) { returnValue = 0; returnDescription = ""; num6 = this.P_ElectronTicketWin(conn, ref ds, _Convert.StrToLong(str, 0L), bonusXML, agentBonusXML, ref returnValue, ref returnDescription); if (num6 < 0) { string[] strArray = new string[] { "电子票第 ", (num5 + 1).ToString(), " 次派奖出现错误(IsuseOpenNotice) 期号为: ", input, ",彩种为: ", LotteryID.ToString() }; new Log(@"ElectronTicket\HPSH").Write(string.Concat(strArray)); num5++; if (num5 < 5) { Thread.Sleep(0x2710); } } } if (returnValue < 0) { new Log(@"ElectronTicket\HPSH").Write("电子票派奖出现错误(IsuseOpenNotice) 期号为: " + input + ",彩种为: " + LotteryID.ToString() + ",错误:" + returnDescription); base.Response.End(); } else { PF.SendWinNotification(ds); DataTable table4 = new Tables.T_WinTypes().Open("", " LotteryID =" + LotteryID.ToString(), ""); if ((table4 != null) && (table4.Rows.Count > 0)) { double[] winMoneyList = new double[table4.Rows.Count * 2]; double num8 = 0.0; double num9 = 0.0; for (int j = 0; j < table4.Rows.Count; j++) { num8 = _Convert.StrToDouble(table4.Rows[j]["DefaultMoney"].ToString(), 0.0); num9 = _Convert.StrToDouble(table4.Rows[j]["DefaultMoneyNoWithTax"].ToString(), 0.0); winMoneyList[j * 2] = (num8 == 0.0) ? 1.0 : num9; winMoneyList[(j * 2) + 1] = (num9 == 0.0) ? 1.0 : num9; } DataTable table5 = new Views.V_Schemes().Open("", " IsuseName = '" + Utility.FilteSqlInfusion(input) + "' and LotteryID = " + LotteryID.ToString() + " and WinMoney = 0 and Buyed = 0 and ID in ( select ID from V_ChaseTaskDetails where IsuseName = '" + Utility.FilteSqlInfusion(input) + "' and LotteryID = " + LotteryID.ToString() + ")", ""); string number = ""; Lottery.LotteryBase base2 = new Lottery()[LotteryID]; string description = ""; double winMoneyNoWithTax = 0.0; for (int k = 0; k < table5.Rows.Count; k++) { number = table5.Rows[k]["LotteryNumber"].ToString(); description = ""; winMoneyNoWithTax = 0.0; double winMoney = base2.ComputeWin(number, str5.Trim(), ref description, ref winMoneyNoWithTax, int.Parse(table5.Rows[k]["PlayTypeID"].ToString()), winMoneyList); if ((winMoney > 0.0) && (Procedures.P_ChaseTaskStopWhenWin(_Convert.StrToLong(table5.Rows[k]["SiteID"].ToString(), 0L), _Convert.StrToLong(table5.Rows[k]["ID"].ToString(), 0L), winMoney, ref returnValue, ref returnDescription) < 0)) { new Log(@"ElectronTicket\HPSH").Write("执行电子票--判断是否停止追号的时候出现错误"); } } } messageID = elementsByTagName[0].Attributes["id"].Value; this.ReNotice(messageID, "508"); } } else { base.Response.End(); } } } } } }
//对返回的开奖号码,进行程序自动派奖 private void BonusQuery(string TransMessage) { System.Xml.XmlDocument XmlDoc = new XmlDocument(); XmlDoc.Load(new StringReader(TransMessage)); System.Xml.XmlNodeList nodes = XmlDoc.GetElementsByTagName("*"); string WinNumber = ""; string Issue = ""; string LotteryName = ""; if (nodes == null) { return; } for (int i = 0; i < nodes.Count; i++) { if (nodes[i].Name.ToUpper() == "BONUSQUERYRESULT") { WinNumber = nodes[i].Attributes["bonusNumber"].Value.Replace(",", ""); } if (nodes[i].Name.ToUpper() == "ISSUE") { Issue = nodes[i].Attributes["number"].Value; LotteryName = nodes[i].Attributes["gameName"].Value; } } int LotteryID = GetLotteryID(LotteryName); if (LotteryID < 0) { return; } DataTable dtIssue = new DAL.Tables.T_Isuses().Open("top 1 *", "LotteryID = " + LotteryID.ToString() + " and [Name] = '" + Shove._Web.Utility.FilteSqlInfusion(Issue) + "' and isOpened = 0 and EndTime < GetDate()", ""); if (dtIssue == null) { new Log("ElectronTicket\\HPCQ").Write("恒朋-重庆电子票网关自动开奖错误,彩种:" + LotteryName + ",期号:" + Issue); return; } if (dtIssue.Rows.Count < 1) { return; } // 准备开奖,开奖之前,对出票不完整的方案进行处理(按系统的设定:当作已出票,或者撤单处理) //int ReturnValue = 0; //string ReturnDescription = ""; //DAL.Procedures.P_PrintOutNotFullHandle(LotteryID, "请电询", ref ReturnValue, ref ReturnDescription); DataTable dtWinMoneyList = new DAL.Tables.T_WinTypes().Open("DefaultMoney, DefaultMoneyNoWithTax", "LotteryID = " + LotteryID.ToString(), "[Order]"); if (dtWinMoneyList == null) { new Log("ElectronTicket\\HPCQ").Write("恒朋-重庆电子票网关自动开奖错误,彩种:" + LotteryName + ",期号:" + Issue); return; } double[] WinMoneyList = new double[dtWinMoneyList.Rows.Count * 2]; for (int i = 0; i < dtWinMoneyList.Rows.Count; i++) { WinMoneyList[i * 2] = Shove._Convert.StrToDouble(dtWinMoneyList.Rows[i][0].ToString(), 0); WinMoneyList[i * 2 + 1] = Shove._Convert.StrToDouble(dtWinMoneyList.Rows[i][1].ToString(), 0); } DataTable dtScheme = new DAL.Tables.T_Schemes().Open("", "IsuseID = " + dtIssue.Rows[0]["ID"].ToString() + " and isOpened = 0", ""); if (dtScheme == null) { new Log("ElectronTicket\\HPCQ").Write("恒朋-重庆电子票网关自动开奖错误,彩种:" + LotteryName + ",期号:" + Issue); return; } if (dtScheme.Rows.Count > 0) { for (int i = 0; i < dtScheme.Rows.Count; i++) { string LotteryNumber = dtScheme.Rows[i]["LotteryNumber"].ToString(); string Description = ""; double WinMoneyNoWithTax = 0; double WinMoney = new SLS.Lottery()[LotteryID].ComputeWin(LotteryNumber, WinNumber, ref Description, ref WinMoneyNoWithTax, int.Parse(dtScheme.Rows[i]["PlayTypeID"].ToString()), WinMoneyList); Shove.Database.MSSQL.ExecuteNonQuery("update T_Schemes set PreWinMoney = @p1, PreWinMoneyNoWithTax = @p2, EditWinMoney = @p3, EditWinMoneyNoWithTax = @p4, WinDescription = @p5 where [ID] = " + dtScheme.Rows[i]["ID"].ToString(), new Shove.Database.MSSQL.Parameter("p1", SqlDbType.Money, 0, ParameterDirection.Input, WinMoney * Shove._Convert.StrToInt(dtScheme.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p2", SqlDbType.Money, 0, ParameterDirection.Input, WinMoneyNoWithTax * Shove._Convert.StrToInt(dtScheme.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p3", SqlDbType.Money, 0, ParameterDirection.Input, WinMoney * Shove._Convert.StrToInt(dtScheme.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p4", SqlDbType.Money, 0, ParameterDirection.Input, WinMoneyNoWithTax * Shove._Convert.StrToInt(dtScheme.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p5", SqlDbType.VarChar, 0, ParameterDirection.Input, Description)); } } //int SchemeCount = 0, QuashCount = 0, WinCount = 0, WinNoBuyCount = 0; // 总方案数,处理时撤单数,中奖数,中奖但未成功数 //ReturnValue = 0; //ReturnDescription = ""; DataSet ds = null; //DAL.Procedures.P_Win(ref ds, // long.Parse(dtIssue.Rows[0]["ID"].ToString()), // WinNumber, // "暂无", // 1, // true, // ref SchemeCount, ref QuashCount, ref WinCount, ref WinNoBuyCount, // ref ReturnValue, ref ReturnDescription); //if ((ds == null) || (ReturnDescription != "")) //{ // PF.GoError(ErrorNumber.DataReadWrite, ReturnDescription, this.GetType().BaseType.FullName); // return; //} PF.SendWinNotification(ds); }
// 接收开奖通知 private void IsuseOpenNotice(string Transmessage) { System.Xml.XmlDocument XmlDoc = new XmlDocument(); System.Xml.XmlNodeList nodes = null; System.Xml.XmlNodeList nodesBonusItem = null; System.Xml.XmlNodeList nodesIssue = null; try { XmlDoc.Load(new StringReader(Transmessage)); nodes = XmlDoc.GetElementsByTagName("*"); nodesBonusItem = XmlDoc.GetElementsByTagName("bonusItem"); nodesIssue = XmlDoc.GetElementsByTagName("issue"); } catch { } if (nodes == null) { return; } string BonusNumber = ""; for (int j = 0; j < nodes.Count; j++) { if (!(nodes[j].Name.ToUpper() == "BODY" && nodes[j].FirstChild.Name.ToUpper() == "BONUSNOTIFY")) { continue; } BonusNumber = nodes[j].FirstChild.Attributes["bonusNumber"].InnerText; } if (nodesIssue == null) { this.Response.End(); return; } string MessageID = nodes[0].Attributes["id"].Value; string number = nodesIssue[0].Attributes["number"].Value; string LotteryName = nodesIssue[0].Attributes["gameName"].Value; int LotteryID = GetLotteryID(LotteryName); string WinNumber = GetWinNumber(LotteryID, BonusNumber); DataTable dtIsuse = new DAL.Tables.T_Isuses().Open("", " [Name] = '" + Shove._Web.Utility.FilteSqlInfusion(number) + "' and LotteryID = " + LotteryID.ToString() + " and IsOpened = 0 and LotteryID in (select id from T_Lotteries where PrintOutType = 103)", ""); if ((dtIsuse == null) || (dtIsuse.Rows.Count < 1)) { this.Response.End(); return; } string IsuseID = dtIsuse.Rows[0]["ID"].ToString(); DAL.Tables.T_Isuses T_Isuses = new DAL.Tables.T_Isuses(); T_Isuses.WinLotteryNumber.Value = WinNumber; T_Isuses.OpenOperatorID.Value = 1; T_Isuses.Update(" ID = " + IsuseID); DataTable dtWinTypesSSL = new DAL.Tables.T_WinTypes().Open("", " LotteryID =" + LotteryID.ToString(), ""); if ((dtWinTypesSSL != null) && dtWinTypesSSL.Rows.Count > 0) { double[] WinMoneyList = new double[dtWinTypesSSL.Rows.Count * 2]; double DefaultMoney = 0; double DefaultMoneyNoWithTax = 0; for (int i = 0; i < dtWinTypesSSL.Rows.Count; i++) { DefaultMoney = Shove._Convert.StrToDouble(dtWinTypesSSL.Rows[i]["DefaultMoney"].ToString(), 0); DefaultMoneyNoWithTax = Shove._Convert.StrToDouble(dtWinTypesSSL.Rows[i]["DefaultMoneyNoWithTax"].ToString(), 0); WinMoneyList[i * 2] = DefaultMoney == 0 ? 1 : DefaultMoneyNoWithTax; WinMoneyList[i * 2 + 1] = DefaultMoneyNoWithTax == 0 ? 1 : DefaultMoneyNoWithTax; } DataTable dtSchemesWithTaskDetails = new DAL.Tables.T_Schemes().Open("", "IsuseID = " + IsuseID + " and WinMoney = 0 and Buyed = 1 and isnull(Identifiers, '') = ''", ""); string LotteryNumber = ""; SLS.Lottery.LotteryBase lb = new SLS.Lottery()[LotteryID]; string Description = ""; double WinMoneyNoWithTax = 0; for (int i = 0; i < dtSchemesWithTaskDetails.Rows.Count; i++) { LotteryNumber = dtSchemesWithTaskDetails.Rows[i]["LotteryNumber"].ToString(); Description = ""; WinMoneyNoWithTax = 0; double WinMoney = lb.ComputeWin(LotteryNumber, WinNumber.Trim(), ref Description, ref WinMoneyNoWithTax, int.Parse(dtSchemesWithTaskDetails.Rows[i]["PlayTypeID"].ToString()), WinMoneyList); if (WinMoney > 0) { Shove.Database.MSSQL.ExecuteNonQuery("update T_Schemes set PreWinMoney = @p1, PreWinMoneyNoWithTax = @p2, WinMoney = @p3, WinMoneyNoWithTax = @p4, WinDescription = @p5 where [ID] = " + dtSchemesWithTaskDetails.Rows[i]["ID"].ToString(), new Shove.Database.MSSQL.Parameter("p1", SqlDbType.Money, 0, ParameterDirection.Input, WinMoney * Shove._Convert.StrToInt(dtSchemesWithTaskDetails.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p2", SqlDbType.Money, 0, ParameterDirection.Input, WinMoneyNoWithTax * Shove._Convert.StrToInt(dtSchemesWithTaskDetails.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p3", SqlDbType.Money, 0, ParameterDirection.Input, WinMoney * Shove._Convert.StrToInt(dtSchemesWithTaskDetails.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p4", SqlDbType.Money, 0, ParameterDirection.Input, WinMoneyNoWithTax * Shove._Convert.StrToInt(dtSchemesWithTaskDetails.Rows[i]["Multiple"].ToString(), 1)), new Shove.Database.MSSQL.Parameter("p5", SqlDbType.VarChar, 0, ParameterDirection.Input, Description)); continue; } } } string BonusXML = "<Schemes>"; string AgentBonusXML = "<Schemes>"; if ((nodesBonusItem != null) && (nodesBonusItem.Count > 0)) { string bonusItemXML = Transmessage.Substring(Transmessage.IndexOf("<bonusNotify"), Transmessage.LastIndexOf("</body>") - Transmessage.IndexOf("<bonusNotify")); DataSet dsXML = new DataSet(); try { dsXML.ReadXml(new StringReader(bonusItemXML)); } catch (Exception e) { new Log("ElectronTicket\\HPJX").Write("电子票开奖,第 " + number + " 期解析开奖数据错误:" + e.Message); this.Response.End(); return; } if ((dsXML == null) || (dsXML.Tables.Count < 3)) { new Log("ElectronTicket\\HPJX").Write("电子票开奖,第 " + number + " 期开奖数据格式不符合要求。"); this.Response.End(); return; } DataTable dtTickets = dsXML.Tables[2]; DataTable dtSchemes = MSSQL.Select("SELECT SchemeID, 0 AS AgentID, SchemesMultiple as Multiple, Identifiers FROM V_SchemesSendToCenter WHERE (IsuseID = " + IsuseID + ")"); if (dtSchemes == null) { new Log("ElectronTicket\\HPJX").Write("电子票开奖,第 " + number + " 期,读取本地方案错误。"); this.Response.End(); return; } try { var query1 = from NewDtTickets in dtTickets.AsEnumerable() join NewdtScheme in dtSchemes.AsEnumerable() on NewDtTickets.Field<string>("ticketID") equals NewdtScheme.Field<string>("Identifiers") select new { ID = NewdtScheme.Field<long>("SchemeID"), AgentID = 0,//NewdtScheme.Field<long>("AgentID"), Multiple = NewdtScheme.Field<int>("Multiple"), Bonus = Shove._Convert.StrToDouble(NewDtTickets.Field<string>("money"), 0), BonusLevel = NewDtTickets.Field<string>("bonusLevel"), Size = Shove._Convert.StrToInt(NewDtTickets.Field<string>("size"), 1) }; var query2 = from NewDt in query1.AsQueryable() group NewDt by new { NewDt.ID, NewDt.BonusLevel, NewDt.AgentID, NewDt.Multiple } into gg select new { ID = gg.Key.ID, AgentID = gg.Key.AgentID, Multiple = gg.Key.Multiple, Bonus = gg.Sum(NewDt => NewDt.Bonus), BonusLevel = GetSchemeWinDescription(gg.Key.BonusLevel, LotteryID, (gg.Sum(NewDt => NewDt.Size) / gg.Key.Multiple)) }; var query3 = from NewDt in query2.AsQueryable() group NewDt by new { NewDt.ID, NewDt.Multiple, NewDt.AgentID } into t_dtSchemes select new { SchemeID = t_dtSchemes.Key.ID, AgentID = t_dtSchemes.Key.AgentID, Multiple = t_dtSchemes.Key.Multiple, Bonus = t_dtSchemes.Sum(NewDt => NewDt.Bonus), BonusLevel = t_dtSchemes.Merge(NewDt => NewDt.BonusLevel) + ((t_dtSchemes.Key.Multiple != 1) ? "(" + t_dtSchemes.Key.Multiple.ToString() + "倍)" : "") }; foreach (var Scheme in query3) { if (Scheme.AgentID == 0) { BonusXML += "<Scheme SchemeID=\"" + Scheme.SchemeID.ToString() + "\" WinMoney=\"" + Scheme.Bonus.ToString() + "\" WinDescription=\"" + Scheme.BonusLevel + "\" />"; } else { AgentBonusXML += "<Scheme SchemeID=\"" + Scheme.SchemeID.ToString() + "\" WinMoney=\"" + Scheme.Bonus.ToString() + "\" WinDescription=\"" + Scheme.BonusLevel + "\" />"; } } } catch (Exception e) { new Log("ElectronTicket\\HPJX").Write("电子票开奖,第 " + number + " 期详细中奖数据解析错误:" + e.Message); this.Response.End(); return; } } BonusXML += "</Schemes>"; AgentBonusXML += "</Schemes>"; dtIsuse = new DAL.Tables.T_Isuses().Open("", "[ID] = " + IsuseID + " and IsOpened = 0", ""); if ((dtIsuse == null) || (dtIsuse.Rows.Count < 1)) { this.Response.End(); return; } int ReturnValue = 0; string ReturnDescription = ""; DataSet ds = null; int Times = 0; int Result = -1; while ((Result < 0) && (Times < 5)) { ReturnValue = 0; ReturnDescription = ""; Result = DAL.Procedures.P_ElectronTicketWin(ref ds, Shove._Convert.StrToLong(IsuseID, 0), BonusXML, AgentBonusXML, ref ReturnValue, ref ReturnDescription); if (Result < 0) { new Log("ElectronTicket\\HPJX").Write("电子票第 " + (Times + 1).ToString() + " 次派奖出现错误(IsuseOpenNotice) 期号为: " + number + ",彩种为: " + LotteryID.ToString()); Times++; if (Times < 5) { System.Threading.Thread.Sleep(10000); } continue; } } if (ReturnValue < 0) { new Log("ElectronTicket\\HPJX").Write("电子票派奖出现错误(IsuseOpenNotice) 期号为: " + number + ",彩种为: " + LotteryID.ToString() + ",错误:" + ReturnDescription); this.Response.End(); return; } PF.SendWinNotification(ds); DataTable dtWinTypes = new DAL.Tables.T_WinTypes().Open("", " LotteryID =" + LotteryID.ToString(), ""); if ((dtWinTypes != null) && dtWinTypes.Rows.Count > 0) { double[] WinMoneyList = new double[dtWinTypes.Rows.Count * 2]; double DefaultMoney = 0; double DefaultMoneyNoWithTax = 0; for (int i = 0; i < dtWinTypes.Rows.Count; i++) { DefaultMoney = Shove._Convert.StrToDouble(dtWinTypes.Rows[i]["DefaultMoney"].ToString(), 0); DefaultMoneyNoWithTax = Shove._Convert.StrToDouble(dtWinTypes.Rows[i]["DefaultMoneyNoWithTax"].ToString(), 0); WinMoneyList[i * 2] = DefaultMoney == 0 ? 1 : DefaultMoneyNoWithTax; WinMoneyList[i * 2 + 1] = DefaultMoneyNoWithTax == 0 ? 1 : DefaultMoneyNoWithTax; } DataTable dtSchemesWithTaskDetails = new DAL.Views.V_Schemes().Open("", "IsuseID = " + IsuseID + " and IsuseName = '" + Shove._Web.Utility.FilteSqlInfusion(number) + "' and LotteryID = " + LotteryID.ToString() + " and WinMoney = 0 and Buyed = 0 and ID in ( select ID from V_ChaseTaskDetails where IsuseName = '" + Shove._Web.Utility.FilteSqlInfusion(number) + "' and LotteryID = " + LotteryID.ToString() + ")", ""); string LotteryNumber = ""; SLS.Lottery.LotteryBase lb = new SLS.Lottery()[LotteryID]; string Description = ""; double WinMoneyNoWithTax = 0; for (int i = 0; i < dtSchemesWithTaskDetails.Rows.Count; i++) { LotteryNumber = dtSchemesWithTaskDetails.Rows[i]["LotteryNumber"].ToString(); Description = ""; WinMoneyNoWithTax = 0; double WinMoney = lb.ComputeWin(LotteryNumber, WinNumber.Trim(), ref Description, ref WinMoneyNoWithTax, int.Parse(dtSchemesWithTaskDetails.Rows[i]["PlayTypeID"].ToString()), WinMoneyList); if (WinMoney > 0) { if (DAL.Procedures.P_ChaseTaskStopWhenWin(Shove._Convert.StrToLong(dtSchemesWithTaskDetails.Rows[i]["SiteID"].ToString(), 0), Shove._Convert.StrToLong(dtSchemesWithTaskDetails.Rows[i]["ID"].ToString(), 0), WinMoney, ref ReturnValue, ref ReturnDescription) < 0) { new Log("ElectronTicket\\HPJX").Write("执行电子票--判断是否停止追号的时候出现错误"); } continue; } } } MessageID = nodes[0].Attributes["id"].Value; ReNotice(MessageID, "508"); }
private void IsuseNotice(string TransMessage) { XmlDocument document = new XmlDocument(); XmlNodeList elementsByTagName = null; XmlNodeList list2 = null; try { document.Load(new StringReader(TransMessage)); elementsByTagName = document.GetElementsByTagName("*"); list2 = document.GetElementsByTagName("issue"); } catch { } if (elementsByTagName == null) { base.Response.End(); } else { Tables.T_Isuses isuses = new Tables.T_Isuses(); for (int i = 0; i < elementsByTagName.Count; i++) { if ((elementsByTagName[i].Name.ToUpper() == "BODY") && (elementsByTagName[i].FirstChild.Name.ToUpper() == "ISSUENOTIFY")) { for (int j = 0; j < list2.Count; j++) { string str = list2[j].Attributes["number"].Value; string lotteryName = list2[j].Attributes["gameName"].Value; string str3 = list2[j].Attributes["status"].Value; string s = list2[j].Attributes["startTime"].Value; string str5 = list2[j].Attributes["stopTime"].Value; int lotteryID = this.GetLotteryID(lotteryName); string winNumber = ""; try { winNumber = this.GetWinNumber(lotteryID, list2[j].Attributes["bonusCode"].Value); } catch { } if ((lotteryID >= 0) && !string.IsNullOrEmpty(str)) { if (isuses.GetCount("LotteryID = " + lotteryID.ToString() + " and [Name] = '" + Utility.FilteSqlInfusion(str) + "'") < 1L) { DateTime now = DateTime.Now; DateTime endTime = DateTime.Now; try { now = DateTime.Parse(s); endTime = DateTime.Parse(str5); } catch { goto Label_0611; } long isuseID = -1L; string returnDescription = ""; if ((Procedures.P_IsuseAdd(lotteryID, str, now, endTime, "", ref isuseID, ref returnDescription) < 0) || (isuseID < 0L)) { goto Label_0611; } } DataTable table = isuses.Open("ID, State, WinLotteryNumber", "LotteryID = " + lotteryID.ToString() + " and [Name] = '" + Utility.FilteSqlInfusion(str) + "'", ""); if ((table != null) && (table.Rows.Count >= 1)) { if (str3 == "4") { int returnValue = 0; string returnDescptrion = ""; if (Procedures.P_ElectronTicketAgentSchemeQuash(_Convert.StrToLong(table.Rows[0]["ID"].ToString(), 0L), ref returnValue, ref returnDescptrion) < 0) { new Log(@"ElectronTicket\HPSH").Write("电子票方案撤单错误_P_ElectronTicketAgentSchemeQuash"); goto Label_0611; } } bool flag = false; if (table.Rows[0]["State"].ToString() != str3) { isuses.State.Value = str3; isuses.StateUpdateTime.Value = DateTime.Now; flag = true; } if (!string.IsNullOrEmpty(winNumber) && (table.Rows[0]["WinLotteryNumber"].ToString() != winNumber)) { isuses.WinLotteryNumber.Value = winNumber; flag = true; if (lotteryID == 0x1d) { DataTable table2 = new Tables.T_WinTypes().Open("", "LotteryID =" + lotteryID.ToString(), ""); double[] winMoneyList = new double[table2.Rows.Count * 2]; for (int k = 0; k < table2.Rows.Count; k++) { winMoneyList[k * 2] = _Convert.StrToDouble(table2.Rows[k]["DefaultMoney"].ToString(), 1.0); winMoneyList[(k * 2) + 1] = _Convert.StrToDouble(table2.Rows[k]["DefaultMoneyNoWithTax"].ToString(), 1.0); } DataTable table3 = new Tables.T_ChaseTaskDetails().Open("", "IsuseID=" + table.Rows[0]["ID"].ToString() + " and SchemeID IS NOT NULL", ""); for (int m = 0; m < table3.Rows.Count; m++) { string number = table3.Rows[m]["LotteryNumber"].ToString(); string description = ""; double winMoneyNoWithTax = 0.0; double winMoney = new Lottery()[lotteryID].ComputeWin(number, winNumber, ref description, ref winMoneyNoWithTax, int.Parse(table3.Rows[m]["PlayTypeID"].ToString()), winMoneyList); if (winMoney >= 1.0) { int num10 = 0; string str11 = ""; if (Procedures.P_ChaseTaskStopWhenWin(_Convert.StrToLong(table3.Rows[m]["SiteID"].ToString(), 1L), _Convert.StrToLong(table3.Rows[m]["SchemeID"].ToString(), 0L), winMoney, ref num10, ref str11) < 0) { new Log(@"ElectronTicket\HPSH").Write("电子票撤销追号错误_P_ChaseTaskStopWhenWin。"); } } } } } if (flag) { isuses.Update("LotteryID = " + lotteryID.ToString() + " and [Name] = '" + Utility.FilteSqlInfusion(str) + "'"); } } Label_0611: ; } } } } string messageID = elementsByTagName[0].Attributes["id"].Value; this.ReNotice(messageID, "501"); } }
private void BindDataForWinMoney() { if (this.ddlLottery.Items.Count >= 1) { DataTable table = new Tables.T_WinTypes().Open("", "LotteryID = " + Utility.FilteSqlInfusion(this.ddlLottery.SelectedValue), "[Order]"); if (table == null) { PF.GoError(4, "数据库繁忙,请重试", base.GetType().BaseType.FullName); } else { this.g.DataSource = table.DefaultView; this.g.DataBind(); } } }
// 接收奖期通知 private void IsuseNotice(string TransMessage) { System.Xml.XmlDocument XmlDoc = new XmlDocument(); System.Xml.XmlNodeList nodes = null; System.Xml.XmlNodeList nodesIssue = null; try { XmlDoc.Load(new StringReader(TransMessage)); nodes = XmlDoc.GetElementsByTagName("*"); nodesIssue = XmlDoc.GetElementsByTagName("issue"); } catch { } if (nodes == null) { this.Response.End(); return; } DAL.Tables.T_Isuses t_Isuses = new DAL.Tables.T_Isuses(); for (int i = 0; i < nodes.Count; i++) { if (!(nodes[i].Name.ToUpper() == "BODY" && nodes[i].FirstChild.Name.ToUpper() == "ISSUENOTIFY")) { continue; } for (int j = 0; j < nodesIssue.Count; j++) { string IsuseName = nodesIssue[j].Attributes["number"].Value; string LotteryName = nodesIssue[j].Attributes["gameName"].Value; string Status = nodesIssue[j].Attributes["status"].Value; string StartTime = nodesIssue[j].Attributes["startTime"].Value; string EndTime = nodesIssue[j].Attributes["stopTime"].Value; int LotteryID = GetLotteryID(LotteryName); string WinNumber = ""; try { WinNumber = GetWinNumber(LotteryID, nodesIssue[j].Attributes["bonusCode"].Value); } catch { } if ((LotteryID < 0) || (String.IsNullOrEmpty(IsuseName))) { continue; } if (t_Isuses.GetCount("LotteryID = " + LotteryID.ToString() + " and [Name] = '" + Shove._Web.Utility.FilteSqlInfusion(IsuseName) + "'") < 1) { DateTime _StartTime = DateTime.Now; DateTime _EndTime = DateTime.Now; try { _StartTime = DateTime.Parse(StartTime); _EndTime = DateTime.Parse(EndTime); } catch { continue; } long IsuseID = -1; string ReturnDescription = ""; if (DAL.Procedures.P_IsuseAdd(LotteryID, IsuseName, _StartTime, _EndTime, "", ref IsuseID, ref ReturnDescription) < 0) { continue; } if (IsuseID < 0) { continue; } } DataTable dtIsuse = t_Isuses.Open("ID, State, WinLotteryNumber", "LotteryID = " + LotteryID.ToString() + " and [Name] = '" + Shove._Web.Utility.FilteSqlInfusion(IsuseName) + "' and LotteryID in (select id from T_Lotteries where PrintOutType = 103)", ""); if ((dtIsuse == null) || (dtIsuse.Rows.Count < 1)) { continue; } if (Status == "4") { int ReturnValue = 0; string ReturnDescprtion = ""; if (DAL.Procedures.P_ElectronTicketAgentSchemeQuash(Shove._Convert.StrToLong(dtIsuse.Rows[0]["ID"].ToString(), 0), ref ReturnValue, ref ReturnDescprtion) < 0) { new Log("ElectronTicket\\HPJX").Write("电子票方案撤单错误_P_ElectronTicketAgentSchemeQuash"); continue; } } if (dtIsuse.Rows[0]["State"].ToString() != Status) { int ReturnValue = 0; string ReturnDescprtion = ""; if (DAL.Procedures.P_IsuseUpdate(LotteryID, IsuseName, Shove._Convert.StrToShort(Status, 0), Shove._Convert.StrToDateTime(StartTime, DateTime.Now.ToString()), Shove._Convert.StrToDateTime(EndTime, DateTime.Now.ToString()), DateTime.Now, WinNumber, ref ReturnValue, ref ReturnDescprtion) < 0) { new Log("ElectronTicket\\HPJX").Write("电子票期号状态更新错误_P_IsuseUpdate"); continue; } } if (!String.IsNullOrEmpty(WinNumber) && (dtIsuse.Rows[0]["WinLotteryNumber"].ToString() != WinNumber)) { if (LotteryID == SLS.Lottery.JXSSC.ID) { DataTable dtWinTypes = new DAL.Tables.T_WinTypes().Open("", "LotteryID =" + LotteryID.ToString(), ""); double[] WinMoneyList = new double[dtWinTypes.Rows.Count * 2]; for (int k = 0; k < dtWinTypes.Rows.Count; k++) { WinMoneyList[k * 2] = Shove._Convert.StrToDouble(dtWinTypes.Rows[k]["DefaultMoney"].ToString(), 1); WinMoneyList[k * 2 + 1] = Shove._Convert.StrToDouble(dtWinTypes.Rows[k]["DefaultMoneyNoWithTax"].ToString(), 1); } DataTable dtChaseTaskDetails = new DAL.Tables.T_ChaseTaskDetails().Open("", "IsuseID=" + dtIsuse.Rows[0]["ID"].ToString() + " and SchemeID IS NOT NULL", ""); for (int k = 0; k < dtChaseTaskDetails.Rows.Count; k++) { string LotteryNumber = dtChaseTaskDetails.Rows[k]["LotteryNumber"].ToString(); string Description = ""; double WinMoneyNoWithTax = 0; double WinMoney = new SLS.Lottery()[LotteryID].ComputeWin(LotteryNumber, WinNumber, ref Description, ref WinMoneyNoWithTax, int.Parse(dtChaseTaskDetails.Rows[k]["PlayTypeID"].ToString()), WinMoneyList); if (WinMoney < 1) { continue; } int ReturnValue = 0; string ReturnDescprtion = ""; if (DAL.Procedures.P_ChaseTaskStopWhenWin(Shove._Convert.StrToLong(dtChaseTaskDetails.Rows[k]["SiteID"].ToString(), 1), Shove._Convert.StrToLong(dtChaseTaskDetails.Rows[k]["SchemeID"].ToString(), 0), WinMoney, ref ReturnValue, ref ReturnDescprtion) < 0) { new Log("ElectronTicket\\HPJX").Write("电子票撤销追号错误_P_ChaseTaskStopWhenWin。"); } } } } } } string MessageID = nodes[0].Attributes["id"].Value; ReNotice(MessageID, "501"); }
protected void btn_ok_Click(object sender, EventArgs e) { DataTable dt = new DAL.Views.V_ElectronTicketAgentSchemesElectronTickets().Open("LotteryID, IsuseID, PlayTypeID, Ticket, SchemeNumber, WinLotteryNumber, DateTime, Money, Multiple", "Identifiers='" + tbTicket.Text.Trim() + "'", ""); if (dt == null) { Shove._Web.JavaScript.Alert(this.Page, "数据库读写错误!"); return; } if (dt.Rows.Count < 1) { Shove._Web.JavaScript.Alert(this.Page, "没有找到此票标识!"); return; } DataTable dtWinList = new DAL.Tables.T_WinTypes().Open("","LotteryID=" + dt.Rows[0]["LotteryID"].ToString(),""); if ((dtWinList == null) || (dtWinList.Rows.Count < 1)) { Shove._Web.JavaScript.Alert(this.Page, "数据库读写错误!"); return; } double[] WinMoneyList = new double[dtWinList.Rows.Count * 2]; for (int i = 0; i < dtWinList.Rows.Count; i++) { WinMoneyList[i * 2] = Shove._Convert.StrToDouble(dtWinList.Rows[i]["defaultMoney"].ToString(), 0); WinMoneyList[i * 2 + 1] = Shove._Convert.StrToDouble(dtWinList.Rows[i]["DefaultMoneyNoWithTax"].ToString(), 0); if (WinMoneyList[i * 2] < 0) { Shove._Web.JavaScript.Alert(this.Page, "数据库读写错误!"); return; } if (WinMoneyList[i * 2] < WinMoneyList[i * 2 + 1]) { Shove._Web.JavaScript.Alert(this.Page, "数据库读写错误!"); return; } } string t_LotteryNumber = dt.Rows[0]["Ticket"].ToString(); string LotteryNumber = ""; int LotteryID = Shove._Convert.StrToInt(dt.Rows[0]["LotteryID"].ToString(), 0); int PlayTypeID = Shove._Convert.StrToInt(dt.Rows[0]["PlayTypeID"].ToString(), 0); string WinLotteryNumber = dt.Rows[0]["WinLotteryNumber"].ToString(); try { new SLS.Lottery()[LotteryID].HPSH_ToElectronicTicket(PlayTypeID, t_LotteryNumber, ref LotteryNumber, ref PlayTypeID); } catch { } string Description = ""; double WinMoneyNoWithTax = 0; double WinMoney = 0; try { WinMoney = new SLS.Lottery()[LotteryID].ComputeWin(LotteryNumber, WinLotteryNumber, ref Description, ref WinMoneyNoWithTax, PlayTypeID, WinMoneyList); } catch { } lbDescription.Text = ""; if (!string.IsNullOrEmpty(Description.Trim())) { lbDescription.Text = Description; } lbSchemeNumber.Text = dt.Rows[0]["SchemeNumber"].ToString(); lbDateTime.Text = dt.Rows[0]["DateTime"].ToString(); lbAmount.Text = dt.Rows[0]["Money"].ToString(); lbMultiple.Text = dt.Rows[0]["Multiple"].ToString(); if (WinMoney > 0) { lbWinMoney.Text = WinMoney.ToString(); } else { lbWinMoney.Text = "<color='red'>" + WinMoney + "</color>"; } }
private void IsuseOpenNotice(string Transmessage) { XmlDocument document = new XmlDocument(); XmlNodeList elementsByTagName = null; XmlNodeList list2 = null; XmlNodeList list3 = null; try { document.Load(new StringReader(Transmessage)); elementsByTagName = document.GetElementsByTagName("*"); list2 = document.GetElementsByTagName("bonusItem"); list3 = document.GetElementsByTagName("issue"); } catch { } if (elementsByTagName != null) { string winNumber = ""; for (int i = 0; i < elementsByTagName.Count; i++) { if ((elementsByTagName[i].Name.ToUpper() == "BODY") && (elementsByTagName[i].FirstChild.Name.ToUpper() == "BONUSNOTIFY")) { winNumber = elementsByTagName[i].FirstChild.Attributes["bonusNumber"].InnerText; } } if (list3 == null) { base.Response.End(); } else { string messageID = elementsByTagName[0].Attributes["id"].Value; string input = list3[0].Attributes["number"].Value; string lotteryName = list3[0].Attributes["gameName"].Value; int LotteryID = this.GetLotteryID(lotteryName); string str5 = this.GetWinNumber(LotteryID, winNumber); DataTable table = new Tables.T_Isuses().Open("", " [Name] = '" + Utility.FilteSqlInfusion(input) + "' and LotteryID = " + LotteryID.ToString() + " and IsOpened = 0", ""); if ((table == null) || (table.Rows.Count < 1)) { base.Response.End(); } else { string str = table.Rows[0]["ID"].ToString(); new Tables.T_Isuses { WinLotteryNumber = { Value = str5 }, OpenOperatorID = { Value = 1 } }.Update(" ID = " + str); int returnValue = 0; string returnDescription = ""; if (LotteryID == 0x3e) { DataTable table2 = new Tables.T_WinTypes().Open("", " LotteryID =" + LotteryID.ToString(), ""); if ((table2 != null) && (table2.Rows.Count > 0)) { double[] winMoneyList = new double[table2.Rows.Count * 2]; double num3 = 0.0; double num4 = 0.0; for (int j = 0; j < table2.Rows.Count; j++) { num3 = _Convert.StrToDouble(table2.Rows[j]["DefaultMoney"].ToString(), 0.0); num4 = _Convert.StrToDouble(table2.Rows[j]["DefaultMoneyNoWithTax"].ToString(), 0.0); winMoneyList[j * 2] = (num3 == 0.0) ? 1.0 : num4; winMoneyList[(j * 2) + 1] = (num4 == 0.0) ? 1.0 : num4; } DataTable table3 = new Tables.T_Schemes().Open("", "IsuseID = " + str + " and WinMoney = 0 and Buyed = 1 and BuyOperatorID = 132011", ""); string number = ""; Lottery.LotteryBase base2 = new Lottery()[LotteryID]; string description = ""; double winMoneyNoWithTax = 0.0; for (int k = 0; k < table3.Rows.Count; k++) { number = table3.Rows[k]["LotteryNumber"].ToString(); description = ""; winMoneyNoWithTax = 0.0; double num8 = base2.ComputeWin(number, str5.Trim(), ref description, ref winMoneyNoWithTax, int.Parse(table3.Rows[k]["PlayTypeID"].ToString()), winMoneyList); if (num8 > 0.0) { MSSQL.ExecuteNonQuery("update T_Schemes set PreWinMoney = @p1, PreWinMoneyNoWithTax = @p2, WinMoney = @p3, WinMoneyNoWithTax = @p4, WinDescription = @p5 where [ID] = " + table3.Rows[k]["ID"].ToString(), new MSSQL.Parameter[] { new MSSQL.Parameter("p1", SqlDbType.Money, 0, ParameterDirection.Input, num8 * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p2", SqlDbType.Money, 0, ParameterDirection.Input, winMoneyNoWithTax * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p3", SqlDbType.Money, 0, ParameterDirection.Input, num8 * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p4", SqlDbType.Money, 0, ParameterDirection.Input, winMoneyNoWithTax * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p5", SqlDbType.VarChar, 0, ParameterDirection.Input, description) }); } } } } string bonusXML = "<Schemes>"; string agentBonusXML = "<Schemes>"; if ((list2 != null) && (list2.Count > 0)) { string s = Transmessage.Substring(Transmessage.IndexOf("<bonusNotify"), Transmessage.LastIndexOf("</body>") - Transmessage.IndexOf("<bonusNotify")); DataSet set = new DataSet(); try { set.ReadXml(new StringReader(s)); } catch (Exception exception) { new Log(@"ElectronTicket\HPSD").Write("电子票开奖,第 " + input + " 期解析开奖数据错误:" + exception.Message); base.Response.End(); return; } if ((set == null) || (set.Tables.Count < 3)) { new Log(@"ElectronTicket\HPSD").Write("电子票开奖,第 " + input + " 期开奖数据格式不符合要求。"); base.Response.End(); return; } DataTable source = set.Tables[2]; DataTable table5 = MSSQL.Select("SELECT SchemeID, AgentID, SchemesMultiple as Multiple, Identifiers FROM V_ElectronTicketAgentSchemesSendToCenter WHERE (IsuseID = " + str + ") UNION ALL SELECT SchemeID, 0 AS AgentID, SchemesMultiple as Multiple, Identifiers FROM V_SchemesSendToCenter WHERE (IsuseID = " + str + ")", new MSSQL.Parameter[0]); if (table5 == null) { new Log(@"ElectronTicket\HPSD").Write("电子票开奖,第 " + input + " 期,读取本地方案错误。"); base.Response.End(); return; } try { foreach (var type in from NewDt in (from NewDt in (from NewDtTickets in source.AsEnumerable() join NewdtScheme in table5.AsEnumerable() on NewDtTickets.Field<string>("ticketID") equals NewdtScheme.Field<string>("Identifiers") //Sum<Package>((Func<Package, double>) (pkg => pkg.Weight)); select new { ID = NewdtScheme.Field<long>("SchemeID"), AgentID = NewdtScheme.Field<long>("AgentID"), Multiple = NewdtScheme.Field<int>("Multiple"), Bonus = _Convert.StrToDouble(NewDtTickets.Field<string>("money"), 0.0), BonusLevel = NewDtTickets.Field<string>("bonusLevel") }).AsQueryable() group NewDt by new { ID = NewDt.ID, BonusLevel = NewDt.BonusLevel, AgentID = NewDt.AgentID, Multiple = NewDt.Multiple } into gg select new { ID = gg.Key.ID, AgentID = gg.Key.AgentID, Multiple = gg.Key.Multiple, Bonus = gg.Sum(NewDt => NewDt.Bonus), BonusLevel = this.GetWinDescription(LotteryID, gg.Key.BonusLevel) }).AsQueryable() group NewDt by new { ID = NewDt.ID, Multiple = NewDt.Multiple, AgentID = NewDt.AgentID } into t_dtSchemes select new { SchemeID = t_dtSchemes.Key.ID, AgentID = t_dtSchemes.Key.AgentID, Multiple = t_dtSchemes.Key.Multiple, Bonus = t_dtSchemes.Sum(NewDt => NewDt.Bonus), BonusLevel = "中奖金额:" + t_dtSchemes.Sum(NewDt => NewDt.Bonus).ToString() + ((t_dtSchemes.Key.Multiple != 1) ? ("(" + t_dtSchemes.Key.Multiple.ToString() + "倍)") : "") }) { string str13; if (type.AgentID == 0L) { str13 = bonusXML; bonusXML = str13 + "<Scheme SchemeID=\"" + type.SchemeID.ToString() + "\" WinMoney=\"" + type.Bonus.ToString() + "\" WinDescription=\"" + type.BonusLevel + "\" />"; } else { str13 = agentBonusXML; agentBonusXML = str13 + "<Scheme SchemeID=\"" + type.SchemeID.ToString() + "\" WinMoney=\"" + type.Bonus.ToString() + "\" WinDescription=\"" + type.BonusLevel + "\" />"; } } } catch (Exception exception2) { new Log(@"ElectronTicket\HPSD").Write("电子票开奖,第 " + input + " 期详细中奖数据解析错误:" + exception2.Message); base.Response.End(); return; } } bonusXML = bonusXML + "</Schemes>"; agentBonusXML = agentBonusXML + "</Schemes>"; table = new Tables.T_Isuses().Open("", "[ID] = " + str + " and IsOpened = 0", ""); if ((table == null) || (table.Rows.Count < 1)) { base.Response.End(); } else { DataSet ds = null; int num11 = 0; int num12 = -1; while ((num12 < 0) && (num11 < 5)) { returnValue = 0; returnDescription = ""; num12 = Procedures.P_ElectronTicketWin(ref ds, _Convert.StrToLong(str, 0L), bonusXML, agentBonusXML, ref returnValue, ref returnDescription); if (num12 < 0) { string[] strArray = new string[] { "电子票第 ", (num11 + 1).ToString(), " 次派奖出现错误(IsuseOpenNotice) 期号为: ", input, ",彩种为: ", LotteryID.ToString() }; new Log(@"ElectronTicket\HPSD").Write(string.Concat(strArray)); num11++; if (num11 < 5) { Thread.Sleep(0x2710); } } } if (returnValue < 0) { new Log(@"ElectronTicket\HPSD").Write("电子票派奖出现错误(IsuseOpenNotice) 期号为: " + input + ",彩种为: " + LotteryID.ToString() + ",错误:" + returnDescription); base.Response.End(); } else { DataTable table6 = new Tables.T_WinTypes().Open("", " LotteryID =" + LotteryID.ToString(), ""); if ((table6 != null) && (table6.Rows.Count > 0)) { double[] numArray2 = new double[table6.Rows.Count * 2]; double num14 = 0.0; double num15 = 0.0; for (int m = 0; m < table6.Rows.Count; m++) { num14 = _Convert.StrToDouble(table6.Rows[m]["DefaultMoney"].ToString(), 0.0); num15 = _Convert.StrToDouble(table6.Rows[m]["DefaultMoneyNoWithTax"].ToString(), 0.0); numArray2[m * 2] = (num14 == 0.0) ? 1.0 : num15; numArray2[(m * 2) + 1] = (num15 == 0.0) ? 1.0 : num15; } DataTable table7 = new Views.V_Schemes().Open("LotteryNumber, PlayTypeID, SiteID, ID, Multiple", " IsuseID = " + str + " and WinMoney = 0 and Buyed = 0", ""); string str14 = ""; Lottery.LotteryBase base3 = new Lottery()[LotteryID]; string str15 = ""; double num17 = 0.0; for (int n = 0; n < table7.Rows.Count; n++) { str14 = table7.Rows[n]["LotteryNumber"].ToString(); str15 = ""; num17 = 0.0; double winMoney = base3.ComputeWin(str14, str5.Trim(), ref str15, ref num17, int.Parse(table7.Rows[n]["PlayTypeID"].ToString()), numArray2); if ((winMoney > 0.0) && (Procedures.P_ChaseTaskStopWhenWin(_Convert.StrToLong(table7.Rows[n]["SiteID"].ToString(), 0L), _Convert.StrToLong(table7.Rows[n]["ID"].ToString(), 0L), winMoney, ref returnValue, ref returnDescription) < 0)) { new Log(@"ElectronTicket\HPSD").Write("执行电子票--判断是否停止追号的时候出现错误"); } } } PF.SendWinNotification(ds); messageID = elementsByTagName[0].Attributes["id"].Value; this.ReNotice(messageID, "508"); } } } } } }
protected void btn_ok_Click(object sender, EventArgs e) { DataTable table = new Views.V_ElectronTicketAgentSchemesElectronTickets().Open("LotteryID, IsuseID, PlayTypeID, Ticket, SchemeNumber, WinLotteryNumber, DateTime, Money, Multiple", "Identifiers='" + this.tbTicket.Text.Trim() + "'", ""); if (table == null) { JavaScript.Alert(this.Page, "数据库读写错误!"); } else if (table.Rows.Count < 1) { JavaScript.Alert(this.Page, "没有找到此票标识!"); } else { DataTable table2 = new Tables.T_WinTypes().Open("", "LotteryID=" + table.Rows[0]["LotteryID"].ToString(), ""); if ((table2 == null) || (table2.Rows.Count < 1)) { JavaScript.Alert(this.Page, "数据库读写错误!"); } else { double[] winMoneyList = new double[table2.Rows.Count * 2]; for (int i = 0; i < table2.Rows.Count; i++) { winMoneyList[i * 2] = _Convert.StrToDouble(table2.Rows[i]["defaultMoney"].ToString(), 0.0); winMoneyList[(i * 2) + 1] = _Convert.StrToDouble(table2.Rows[i]["DefaultMoneyNoWithTax"].ToString(), 0.0); if (winMoneyList[i * 2] < 0.0) { JavaScript.Alert(this.Page, "数据库读写错误!"); return; } if (winMoneyList[i * 2] < winMoneyList[(i * 2) + 1]) { JavaScript.Alert(this.Page, "数据库读写错误!"); return; } } string number = table.Rows[0]["Ticket"].ToString(); string ticketNumber = ""; int num2 = _Convert.StrToInt(table.Rows[0]["LotteryID"].ToString(), 0); int playTypeID = _Convert.StrToInt(table.Rows[0]["PlayTypeID"].ToString(), 0); string winNumber = table.Rows[0]["WinLotteryNumber"].ToString(); try { new Lottery()[num2].HPSH_ToElectronicTicket(playTypeID, number, ref ticketNumber, ref playTypeID); } catch { } string description = ""; double winMoneyNoWithTax = 0.0; double num5 = 0.0; try { num5 = new Lottery()[num2].ComputeWin(ticketNumber, winNumber, ref description, ref winMoneyNoWithTax, playTypeID, winMoneyList); } catch { } this.lbDescription.Text = ""; if (!string.IsNullOrEmpty(description.Trim())) { this.lbDescription.Text = description; } this.lbSchemeNumber.Text = table.Rows[0]["SchemeNumber"].ToString(); this.lbDateTime.Text = table.Rows[0]["DateTime"].ToString(); this.lbAmount.Text = table.Rows[0]["Money"].ToString(); this.lbMultiple.Text = table.Rows[0]["Multiple"].ToString(); if (num5 > 0.0) { this.lbWinMoney.Text = num5.ToString(); } else { this.lbWinMoney.Text = "<color='red'>" + num5 + "</color>"; } } } }
//对开奖号码通知进行处理 private void ReceiveWinNumberNotice(string TransMessage) { string elements = TransMessage.Substring(TransMessage.IndexOf("<body"), TransMessage.LastIndexOf("</body>") - TransMessage.IndexOf("<body")) + "</body>"; DataSet ds = new DataSet(); ds.ReadXml(new StringReader(elements)); if (ds == null) { return; } if (ds.Tables.Count == 0) { return; } if (ds.Tables.Count < 1) { return; } DataTable dtLottery = ds.Tables[0]; DataTable dtIssue = ds.Tables[1]; DAL.Tables.T_Isuses t_Isuses = new DAL.Tables.T_Isuses(); string number = dtLottery.Rows[0]["issue"].ToString(); string LotteryName = dtLottery.Rows[0]["lotteryId"].ToString(); string BonusNumber = dtIssue.Rows[0]["baseCode"].ToString() + " " + dtIssue.Rows[0]["specialCode"].ToString(); int LotteryID = GetLotteryID(LotteryName); string WinNumber = GetWinNumber(LotteryID, BonusNumber); string Body = ""; DataTable dtIsuse = new DAL.Tables.T_Isuses().Open("", "[Name] = '" + number + "' and LotteryID = " + LotteryID.ToString() + " and IsOpened = 0", ""); if ((dtIsuse == null) || (dtIsuse.Rows.Count < 1)) { Body = "<body><result>0</result></body>"; ReNotice("1202", Body); return; } long IsuseID = Shove._Convert.StrToLong(dtIsuse.Rows[0]["ID"].ToString(), 0); DAL.Tables.T_Isuses T_Isuses = new DAL.Tables.T_Isuses(); T_Isuses.WinLotteryNumber.Value = WinNumber; T_Isuses.OpenOperatorID.Value = 1; T_Isuses.Update( "[ID] = " + IsuseID + " and [Name] = '" + number + "' and LotteryID = " + LotteryID.ToString()); DAL.Tables.T_IsuseInfo t_IsuseInfo = new DAL.Tables.T_IsuseInfo(); t_IsuseInfo.TotalSaleMoney.Value = Shove._Convert.StrToDouble(dtLottery.Rows[0]["totalSaleMoney"].ToString(), -1); t_IsuseInfo.PoolOut.Value = Shove._Convert.StrToDouble(dtLottery.Rows[0]["poolOut"].ToString(), -1); t_IsuseInfo.TotalAwardMoney.Value = Shove._Convert.StrToDouble(dtLottery.Rows[0]["totalAwardMoney"].ToString(), -1); t_IsuseInfo.TotalSaleMoneyLocal.Value = Shove._Convert.StrToDouble(dtLottery.Rows[0]["totalSaleMoneyLocal"].ToString(), -1); t_IsuseInfo.TotalAwardMoneyLocal.Value = Shove._Convert.StrToDouble(dtLottery.Rows[0]["totalAwardMoneyLocal"].ToString(), -1); t_IsuseInfo.IssueID.Value = IsuseID; if (new DAL.Tables.T_IsuseInfo().GetCount("IssueID=" + IsuseID.ToString()) < 1) { t_IsuseInfo.Insert(); } else { t_IsuseInfo.Update("IssueID=" + IsuseID.ToString()); } DataTable dtWinTypes = new DAL.Tables.T_WinTypes().Open("", " LotteryID =" + LotteryID.ToString(), ""); if ((dtWinTypes == null) || dtWinTypes.Rows.Count < 1) { //log.Write("执行电子票--获取彩种: " + LotteryID.ToString() + ",奖金等级时出现错误!"); Body = "<body><result>0</result></body>"; ReNotice("1202", Body); return; } double[] WinMoneyList = new double[dtWinTypes.Rows.Count * 2]; double DefaultMoney = 0; double DefaultMoneyNoWithTax = 0; for (int i = 0; i < dtWinTypes.Rows.Count; i++) { DefaultMoney = Shove._Convert.StrToDouble(dtWinTypes.Rows[i]["DefaultMoney"].ToString(), 0); DefaultMoneyNoWithTax = Shove._Convert.StrToDouble(dtWinTypes.Rows[i]["DefaultMoneyNoWithTax"].ToString(), 0); WinMoneyList[i * 2] = DefaultMoney == 0 ? 1 : DefaultMoneyNoWithTax; WinMoneyList[i * 2 + 1] = DefaultMoneyNoWithTax == 0 ? 1 : DefaultMoneyNoWithTax; } DataTable dtSchemesWithTaskDetails = new DAL.Views.V_Schemes().Open("", " IsuseName = '" + number + "' and LotteryID = " + LotteryID.ToString() + " and WinMoney = 0 and Buyed = 0 and ID in ( select ID from V_ChaseTaskDetails where IsuseName = '" + number + "' and LotteryID = " + LotteryID.ToString() + ")", ""); string LotteryNumber = ""; SLS.Lottery.LotteryBase lb = new SLS.Lottery()[LotteryID]; int ReturnValue = 0; string ReturnDescription = ""; string Description = ""; double WinMoneyNoWithTax = 0; for (int i = 0; i < dtSchemesWithTaskDetails.Rows.Count; i++) { LotteryNumber = dtSchemesWithTaskDetails.Rows[i]["LotteryNumber"].ToString(); Description = ""; WinMoneyNoWithTax = 0; double WinMoney = lb.ComputeWin(LotteryNumber, WinNumber.Trim(), ref Description, ref WinMoneyNoWithTax, int.Parse(dtSchemesWithTaskDetails.Rows[i]["PlayTypeID"].ToString()), WinMoneyList); if (WinMoney > 0) { if (DAL.Procedures.P_ChaseTaskStopWhenWin(Shove._Convert.StrToLong(dtSchemesWithTaskDetails.Rows[i]["SiteID"].ToString(), 0), Shove._Convert.StrToLong(dtSchemesWithTaskDetails.Rows[i]["ID"].ToString(), 0), WinMoney, ref ReturnValue, ref ReturnDescription) < 0) { //log.Write("执行电子票--判断是否停止追号的时候出现错误"); continue; } } } Body = "<body><result>0</result></body>"; ReNotice("1202", Body); }
private void BonusQuery(string TransMessage) { XmlDocument document = new XmlDocument(); document.Load(new StringReader(TransMessage)); XmlNodeList elementsByTagName = document.GetElementsByTagName("*"); string winNumber = ""; string input = ""; string gameName = ""; if (elementsByTagName != null) { for (int i = 0; i < elementsByTagName.Count; i++) { if (elementsByTagName[i].Name.ToUpper() == "BONUSQUERYRESULT") { winNumber = elementsByTagName[i].Attributes["bonusNumber"].Value.Replace(",", ""); } if (elementsByTagName[i].Name.ToUpper() == "ISSUE") { input = elementsByTagName[i].Attributes["number"].Value; gameName = elementsByTagName[i].Attributes["gameName"].Value; } } int lotteryID = this.GetLotteryID(gameName); if (lotteryID >= 0) { DataTable table = new Tables.T_Isuses().Open("top 1 *", "LotteryID = " + lotteryID.ToString() + " and [Name] = '" + Utility.FilteSqlInfusion(input) + "' and isOpened = 0 and EndTime < GetDate()", ""); if (table == null) { new Log(@"ElectronTicket\HPCQ").Write("恒朋-重庆电子票网关自动开奖错误,彩种:" + gameName + ",期号:" + input); } else if (table.Rows.Count >= 1) { DataTable table2 = new Tables.T_WinTypes().Open("DefaultMoney, DefaultMoneyNoWithTax", "LotteryID = " + lotteryID.ToString(), "[Order]"); if (table2 == null) { new Log(@"ElectronTicket\HPCQ").Write("恒朋-重庆电子票网关自动开奖错误,彩种:" + gameName + ",期号:" + input); } else { double[] winMoneyList = new double[table2.Rows.Count * 2]; for (int j = 0; j < table2.Rows.Count; j++) { winMoneyList[j * 2] = _Convert.StrToDouble(table2.Rows[j][0].ToString(), 0.0); winMoneyList[(j * 2) + 1] = _Convert.StrToDouble(table2.Rows[j][1].ToString(), 0.0); } DataTable table3 = new Tables.T_Schemes().Open("", "IsuseID = " + table.Rows[0]["ID"].ToString() + " and isOpened = 0", ""); if (table3 == null) { new Log(@"ElectronTicket\HPCQ").Write("恒朋-重庆电子票网关自动开奖错误,彩种:" + gameName + ",期号:" + input); } else { if (table3.Rows.Count > 0) { for (int k = 0; k < table3.Rows.Count; k++) { string number = table3.Rows[k]["LotteryNumber"].ToString(); string description = ""; double winMoneyNoWithTax = 0.0; double num6 = new Lottery()[lotteryID].ComputeWin(number, winNumber, ref description, ref winMoneyNoWithTax, int.Parse(table3.Rows[k]["PlayTypeID"].ToString()), winMoneyList); MSSQL.ExecuteNonQuery("update T_Schemes set PreWinMoney = @p1, PreWinMoneyNoWithTax = @p2, EditWinMoney = @p3, EditWinMoneyNoWithTax = @p4, WinDescription = @p5 where [ID] = " + table3.Rows[k]["ID"].ToString(), new MSSQL.Parameter[] { new MSSQL.Parameter("p1", SqlDbType.Money, 0, ParameterDirection.Input, num6 * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p2", SqlDbType.Money, 0, ParameterDirection.Input, winMoneyNoWithTax * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p3", SqlDbType.Money, 0, ParameterDirection.Input, num6 * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p4", SqlDbType.Money, 0, ParameterDirection.Input, winMoneyNoWithTax * _Convert.StrToInt(table3.Rows[k]["Multiple"].ToString(), 1)), new MSSQL.Parameter("p5", SqlDbType.VarChar, 0, ParameterDirection.Input, description) }); } } DataSet ds = null; PF.SendWinNotification(ds); } } } } } }