// 查询奖期状态 private void GetLotteryIsuses() { // 查询的几组条件说明: // 1 有效期内未开奖、未开启的 // 2 已截止未开奖的 DataTable dt = new DAL.Tables.T_Lotteries().Open(ConnectionString, "[ID]", " PrintOutType = 102", ""); if (dt == null) { msg.Send("期号状态查询错误(QueryIsuseState)。"); log.Write("期号状态查询错误(QueryIsuseState)。"); return; } if (dt.Rows.Count < 1) { return; } for (int i = 0; i < dt.Rows.Count; i++) { if (i % 100 == 0) { System.Threading.Thread.Sleep(1000); } #region 查询奖期 string LotteryName = GetLotteryName(Shove._Convert.StrToInt(dt.Rows[i]["ID"].ToString(), 0)); string IsuseName = ""; DateTime Now = DateTime.Now; string MessageID = ElectronTicket_HPSH_UserName + Now.ToString("yyyyMMdd") + Now.ToString("HHmmss") + (i % 100).ToString().PadLeft(2, '0'); string Body = "<body><issueQuery><issue gameName=\"" + LotteryName + "\" number=\"" + IsuseName + "\"/></issueQuery></body>"; string TimeStamp = Now.ToString("yyyyMMdd") + Now.ToString("HHmmss"); string Message = "<?xml version=\"1.0\" encoding=\"GBK\"?>"; Message += "<message version=\"1.0\" id=\"" + MessageID + "\">"; Message += "<header>"; Message += "<messengerID>" + ElectronTicket_HPSH_UserName + "</messengerID>"; Message += "<timestamp>" + TimeStamp + "</timestamp>"; Message += "<transactionType>102</transactionType>"; Message += "<digest>" + Shove._Security.Encrypt.MD5(MessageID + TimeStamp + ElectronTicket_HPSH_UserPassword + Body, "gb2312") + "</digest>"; Message += "</header>"; Message += Body; Message += "</message>"; WriteElectronTicketLog(true, "102", "transType=102&transMessage=" + Message); string ReceiveString = ""; try { ReceiveString = PublicFunction.Post(ElectronTicket_HPSH_Getway, "transType=102&transMessage=" + Message, TimeoutSeconds); } catch { continue; } if (ReceiveString.Length <= 10) { continue; } string[] t_strs = ReceiveString.Split('&'); if ((t_strs == null) || (t_strs.Length < 2)) { continue; } string TransType = t_strs[0]; string TransMessage = t_strs[1]; TransType = TransType.Substring(10); TransMessage = TransMessage.Substring(13); WriteElectronTicketLog(false, TransType, ReceiveString); #endregion } }
private void BindData(long UserID, int LotteryID) { string ReturnDescription = ""; string IsShowWin = ""; Users tu = new Users(_Site.ID); tu.ID = UserID; if (tu.GetUserInformationByID(ref ReturnDescription) != 0) { PF.GoError(ErrorNumber.Unknow, ReturnDescription, this.GetType().FullName); return; } labUserName.Text = tu.Name; labUserRegisterTime.Text = tu.RegisterTime.ToString("yyyy-MM-dd HH:mm:ss"); labUserType.Text = "普通会员"; dingZhi = "&FollowUserID=" + UserID + "&FollowUserName="******"\""; DataTable dt = null; if (Source == -1) { dt = new DAL.Tables.T_Lotteries().Open("[ID], [Name]", "[id] = " + LotteryID.ToString(), ""); } else if (Source == 1) { dt = Shove.Database.MSSQL.Select("Select ID,Name from T_Lotteries where ID=" + LotteryID.ToString()); } else if (Source == 2) { dt = Shove.Database.MSSQL.Select("Select ID,Name from T_Lotteries where ID=" + LotteryID.ToString()); } else { dt = new DAL.Tables.T_Lotteries().Open("[ID], [Name]", "[id] = " + LotteryID.ToString(), ""); } if (dt == null) { PF.GoError(ErrorNumber.DataReadWrite, "数据库繁忙,请重试", this.GetType().FullName); return; } if (cbShowWin.Checked) { IsShowWin = " where WinMoney>0"; } string CacheKey = tu.ID + "_" + LotteryID.ToString() + "_Home_Web_Score_" + cbShowWin.Checked; dt = Shove._Web.Cache.GetCacheAsDataTable(CacheKey); if (dt == null || IsShow == true) { string sqlText = "select * from ("; sqlText += GetSQL(UserID, LotteryID, "", ",source=1") + ") d " + IsShowWin + " order by TopMoney desc,id desc"; dt = Shove.Database.MSSQL.Select(sqlText); if (dt == null) { PF.GoError(ErrorNumber.DataReadWrite, "数据库繁忙,请重试", this.GetType().FullName); return; } Shove._Web.Cache.SetCache(CacheKey, dt, 300); } PF.DataGridBindData(g, dt, gPager); gPager.Visible = true; }
//向大赢家出票接口发送票 发送类型110(发送开奖号码请求) private void Send() { DataTable SiteLoID = new DAL.Tables.T_Lotteries().Open("[ID]", "[ID] in (2,3,5,6,9,13,15,28,29,39,61,63,64,65,70,74,75)", "[Order]"); ElectronTicket_BLL ElectronTicket_BLL = new ElectronTicket_BLL(); for (int i = 0; i < SiteLoID.Rows.Count; i++) { DataTable dt = GetIsusesInfo(SiteLoID.Rows[i]["ID"].ToString()); if (dt.Rows.Count > 0) { //上期期信息(未开奖) string LastIsuseName = null; string LastLotteryID = null; string wMsgID = null; try { LastIsuseName = dt.Rows[0]["Name"].ToString(); LastLotteryID = dt.Rows[0]["LotteryID"].ToString(); wMsgID = dt.Rows[0]["ID"].ToString();; } catch (Exception ex) { msg.Send(ex.Message); log.Write(ex.Message); continue; } //wAgent=3821&wAction=110&wMsgID=1238494210&wSign=b7c289e65e00f5fb834f338e6b753e44&wParam=LotID=11_LotIssue=2008001 //wAgent+wAction+wMsgID+wParam+代理商密钥 string wParamStr = ""; string wSignStr = ""; try { wParamStr = "LotID=" + ElectronTicket_BLL.GetLotteryID(LastLotteryID) + "_LotIssue=" + ElectronTicket_BLL.GetIsuse(Convert.ToInt32(LastLotteryID), LastIsuseName) + ""; } catch (Exception ex) { msg.Send(ex.Message); log.Write(ex.Message); continue; } try { wSignStr = Shove._Security.Encrypt.MD5(ElectronTicket_Agent_UserNumber + "110" + wMsgID + wParamStr + ElectronTicket_Agent_Key + "", "gb2312"); } catch (Exception ex) { msg.Send(ex.Message); log.Write(ex.Message); continue; } string ReceiveString = ""; try { //log.Write(ElectronTicket_Getway + "wAgent=" + ElectronTicket_Agent_UserNumber + "&wAction=110&wMsgID=" + wMsgID + "&wSign=" + wSignStr + "&wParam=" + wParamStr); System.Threading.Thread.Sleep(500); ReceiveString = PublicFunction.Post(ElectronTicket_Getway, "wAgent=" + ElectronTicket_Agent_UserNumber + "&wAction=110&wMsgID=" + wMsgID + "&wSign=" + wSignStr + "&wParam=" + wParamStr + "", TimeoutSeconds); } catch { msg.Send("获取开奖号-110 发送失败"); log.Write("获取开奖号-110 发送失败"); continue; } // log.Write(ReceiveString); System.Threading.Thread.Sleep(500); string code = ElectronTicket_BLL.GetXMLCode(ReceiveString, "xCode"); if (code == "0") { string xValue = ElectronTicket_BLL.GetXMLCode(ReceiveString, "xValue"); string IsuseID = ElectronTicket_BLL.GetXMLCode(ReceiveString, "xMsgID"); var arrInfo = xValue.Split('_'); DAL.Tables.T_Isuses T_Isuses = new DAL.Tables.T_Isuses(); T_Isuses.WinLotteryNumber.Value = arrInfo[1]; if (T_Isuses.Update("[ID] = " + IsuseID) < 0) { msg.Send("自动录入开奖号码失败 彩种ID:" + IsuseID); log.Write("自动录入开奖号码失败 彩种ID:" + IsuseID); continue; } } } continue; } }
private void BindDataForLottery() { ddlLottery.Items.Clear(); ddlLottery.Items.Add(new ListItem("全部彩种", "-1")); if (_Site.UseLotteryList == "") { PF.GoError(ErrorNumber.Unknow, "暂无玩法", this.GetType().FullName); return; } string CacheKey = "dtLotteriesUseLotteryList"; DataTable dtLotteries = Shove._Web.Cache.GetCacheAsDataTable(CacheKey); if (dtLotteries == null) { dtLotteries = new DAL.Tables.T_Lotteries().Open("[ID], [Name], [Code]", "[ID] in(" + (_Site.UseLotteryList == "" ? "-1" : _Site.UseLotteryList) + ")", "[ID]"); if (dtLotteries == null) { PF.GoError(ErrorNumber.DataReadWrite, "数据库繁忙,请重试", this.GetType().BaseType.FullName + "(-46)"); return; } Shove._Web.Cache.SetCache(CacheKey, dtLotteries, 6000); } for (int i = 0; i < dtLotteries.Rows.Count; i++) { string LotteryID = dtLotteries.Rows[i]["ID"].ToString(); //玩法信息缓存 6000 秒 CacheKey = "dtVPlayTypes_" + LotteryID.ToString(); DataTable dtPlayTypes = Shove._Web.Cache.GetCacheAsDataTable(CacheKey); if (dtPlayTypes == null) { dtPlayTypes = new DAL.Views.V_PlayTypes().Open("", "LotteryID = " + LotteryID.ToString(), "[ID]"); if (dtPlayTypes == null || dtPlayTypes.Rows.Count < 1) { PF.GoError(ErrorNumber.NoData, "数据库繁忙,请重试", this.GetType().FullName); return; } Shove._Web.Cache.SetCache(CacheKey, dtPlayTypes, 6000); } if (arrLotteries.Contains(Shove._Convert.StrToInt(dtLotteries.Rows[i]["ID"].ToString(), 0))) { ddlLottery.Items.Add(new ListItem(dtPlayTypes.Rows[0]["LotteryName"].ToString(), dtPlayTypes.Rows[0]["LotteryID"].ToString())); } } if (ddlLottery.Items.Count > 0) { BindDataForPlayType(ddlLottery.Items[0].Value); } }
protected void g_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.EditItem) { DataRowView drv = (DataRowView)e.Item.DataItem; DataRow dr = drv.Row; //定制时间 e.Item.Cells[0].Text = Shove._Convert.StrToDateTime(dr["DateTime"].ToString(), DateTime.Now.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); //END //彩种 string CacheKey = "dtLotteriesUseLotteryList"; DataTable dtLotteries = Shove._Web.Cache.GetCacheAsDataTable(CacheKey); if (dtLotteries == null) { dtLotteries = new DAL.Tables.T_Lotteries().Open("[ID], [Name], [Code]", "[ID] in(" + (_Site.UseLotteryList == "" ? "-1" : _Site.UseLotteryList) + ")", "[ID]"); if (dtLotteries == null) { PF.GoError(ErrorNumber.DataReadWrite, "数据库繁忙,请重试", this.GetType().BaseType.FullName + "(-39)"); return; } Shove._Web.Cache.SetCache(CacheKey, dtLotteries, 6000); } if (dtLotteries == null) { PF.GoError(ErrorNumber.DataReadWrite, "数据库繁忙,请重试", this.GetType().BaseType.FullName + "(-49)"); return; } if (dr["LotteryID"].ToString() == "-1") { e.Item.Cells[2].Text = "全部彩种"; } else { e.Item.Cells[2].Text = dtLotteries.Select("ID = " + dr["LotteryID"].ToString())[0]["Name"].ToString(); } //END //玩法 //玩法信息缓存 6000 秒 CacheKey = "dtPlayTypes"; DataTable dtPlayTypes = Shove._Web.Cache.GetCacheAsDataTable(CacheKey); if (dtPlayTypes == null) { dtPlayTypes = new DAL.Tables.T_PlayTypes().Open("", "LotteryID in (" + (_Site.UseLotteryList == "" ? "-1" : _Site.UseLotteryList) + ")", "[ID]"); if (dtPlayTypes == null || dtPlayTypes.Rows.Count < 1) { PF.GoError(ErrorNumber.NoData, "数据库繁忙,请重试", this.GetType().FullName + "(-85)"); return; } Shove._Web.Cache.SetCache(CacheKey, dtPlayTypes, 6000); } if (dtPlayTypes == null) { PF.GoError(ErrorNumber.DataReadWrite, "数据库繁忙,请重试", this.GetType().BaseType.FullName + "(-95)"); return; } if (dr["PlayTypeID"].ToString() == "-1") { e.Item.Cells[3].Text = "全部玩法"; } else { e.Item.Cells[3].Text = dtPlayTypes.Select("ID = " + dr["PlayTypeID"].ToString())[0]["Name"].ToString(); } //END //认购金额 e.Item.Cells[4].Text = Shove._Convert.StrToDouble(dr["MoneyStart"].ToString(), 0).ToString("N") + " 至 " + Shove._Convert.StrToDouble(dr["MoneyEnd"].ToString(), 0).ToString("N") + " 元"; //END e.Item.Cells[5].Text = dr["Type"].ToString() == "1" ? "用户定制" : "发起人指定"; } }