Example #1
0
    private void BindData()
    {
        DataTable cacheAsDataTable = Shove._Web.Cache.GetCacheAsDataTable(WebConfig.GetAppSettingsString("SystemPreFix") + base._Site.ID.ToString() + "AccountDetail_" + base._User.ID.ToString());
        DateTime  time2            = _Convert.StrToDateTime(this.ddlYear.SelectedValue + "-" + this.ddlMonth.SelectedValue + "-" + this.ddlDay.SelectedValue + " 00:00:00", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        DateTime  now = _Convert.StrToDateTime(this.ddlYear1.SelectedValue + "-" + this.ddlMonth1.SelectedValue + "-" + this.ddlDay1.SelectedValue + " 23:59:59", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

        if (cacheAsDataTable == null)
        {
            if (this.ddlYear.Items.Count < 1)
            {
                return;
            }
            if (DateTime.Now.CompareTo(now) <= 0)
            {
                now = DateTime.Now;
            }
            if (now.CompareTo(time2) < 0)
            {
                JavaScript.Alert(this.Page, "开始时间不能小于结束时间.");
                return;
            }
            int     returnValue       = 0;
            string  returnDescription = "";
            DataSet ds = null;
            Procedures.P_GetUserAccountDetails(ref ds, 1L, base._User.ID, time2, now, ref returnValue, ref returnDescription);
            if ((ds == null) || (ds.Tables.Count < 1))
            {
                PF.GoError(4, "数据库繁忙,请重试", "Room_AccountDetail");
                return;
            }
            if (returnValue < 0)
            {
                JavaScript.Alert(this.Page, returnDescription);
                return;
            }
            cacheAsDataTable = ds.Tables[0];
            Shove._Web.Cache.SetCache(WebConfig.GetAppSettingsString("SystemPreFix") + base._Site.ID.ToString() + "AccountDetail_" + base._User.ID.ToString(), cacheAsDataTable);
        }
        PF.DataGridBindData(this.g, cacheAsDataTable, this.gPager);
        this.lblInCount.Text  = this.inCount.ToString();
        this.lblOutCount.Text = this.outCount.ToString();
        this.lblInMoney.Text  = this.inMoney.ToString("N");
        this.lblOutMoney.Text = this.outMoney.ToString("N");
    }
Example #2
0
    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();
                        }
                    }
                }
            }
        }
    }
Example #3
0
 protected void btnGO_Click(object sender, EventArgs e)
 {
     Shove._Web.Cache.ClearCache(WebConfig.GetAppSettingsString("SystemPreFix") + base._Site.ID.ToString() + "AccountDetail_" + base._User.ID.ToString());
     this.BindData();
 }