예제 #1
0
        private void Receive()  // 接收短信
        {
            if ((Betting_SMS_UserID == "") || (Betting_SMS_UserPassword == "") || (segg == null))
            {
                return;
            }

            SMS.Eucp.Gateway.CallResult Result = segg.ReceiveSMS();

            if (Result.Code < 0)
            {
                msg.Send("Receive SMS fail." + Result.Description);
                log.Write("Receive SMS fail." + Result.Description);

                return;
            }

            if (segg.rsc.Count < 1)
            {
                return;
            }

            // 写入数据库
            DAL.Tables.T_SmsBettings t_SmsBettings = new DAL.Tables.T_SmsBettings();

            for (int i = 0; i < segg.rsc.Count; i++)
            {
                t_SmsBettings.SMSID.Value        = 0;
                t_SmsBettings.From.Value         = segg.rsc[i].FromMobile;
                t_SmsBettings.Content.Value      = segg.rsc[i].Content;
                t_SmsBettings.HandleResult.Value = 0;

                if (t_SmsBettings.Insert(ConnectionString) < 0)
                {
                    msg.Send("Write SMS fail.");
                    log.Write("Write SMS fail.");

                    continue;
                }
            }
        }
예제 #2
0
        private void Betting()  // 解析,投注
        {
            DAL.Tables.T_SmsBettings t_SmsBettings = new DAL.Tables.T_SmsBettings();
            DataTable dt = t_SmsBettings.Open(ConnectionString, "", "HandleResult = 0", "[ID]");

            if (dt == null)
            {
                msg.Send("Read SMS fail.");
                log.Write("Read SMS fail.");

                return;
            }

            foreach (DataRow dr in dt.Rows)
            {
                string ID = dr["ID"].ToString();
                string Mobile = dr["From"].ToString().Trim();
                string Content = Shove._Convert.ToDBC(dr["Content"].ToString()).Trim();

                if ((Mobile == "") || (Content == ""))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1000)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                string[] Contents = Content.Split(';');

                if ((Contents == null) || (Contents.Length != 6))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1001)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 1;501;1;1;010203040506+01|010203040506+01;#2                          站点ID;玩法ID;总份数;认购份数;号码|号码;#倍数

                long SiteID = Shove._Convert.StrToLong(Contents[0], -1);

                if (SiteID < 0)
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1002)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                if (new DAL.Tables.T_Sites().GetCount(ConnectionString, "[ID] = " + SiteID.ToString()) < 0)
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1003)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                #region 投注

                if (!Contents[5].StartsWith("#"))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1004)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                int PlayTypeID = Shove._Convert.StrToInt(Contents[1], -1);
                int Share = Shove._Convert.StrToInt(Contents[2], -1);
                int BuyShare = Shove._Convert.StrToInt(Contents[3], -1);
                string LotteryNumber = Contents[4].Trim();
                int Multiple = Shove._Convert.StrToInt(Contents[5].Substring(1, Contents[5].Length - 1), -1);

                if ((PlayTypeID < 0) || (BuyShare < 0) || (Share < BuyShare) || (LotteryNumber == "") || (Multiple < 0))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1005)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 根据手机获取用户
                DataTable dtUsers = new DAL.Tables.T_Users().Open(ConnectionString, "[ID], Balance", "SiteID = " + SiteID.ToString() + " and Mobile = '" + Mobile + "' and isMobileValided = 1", "");

                if ((dtUsers == null) || (dtUsers.Rows.Count != 1))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "用户不存在(1006)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                long UserID = Shove._Convert.StrToLong(dtUsers.Rows[0]["ID"].ToString(), -1);
                double Balance = Shove._Convert.StrToDouble(dtUsers.Rows[0]["Balance"].ToString(), 0);

                if (UserID < 0)
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "用户不存在(1007)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 获取彩种、同时也校验了玩法
                DataTable dtLottery = new DAL.Tables.T_PlayTypes().Open(ConnectionString, "LotteryID, Price, MaxMultiple", "[ID] = " + PlayTypeID.ToString(), "");

                if ((dtLottery == null) || (dtLottery.Rows.Count < 1))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1008)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                int LotteryID = Shove._Convert.StrToInt(dtLottery.Rows[0]["LotteryID"].ToString(), -1);
                double Price = Shove._Convert.StrToDouble(dtLottery.Rows[0]["Price"].ToString(), -1);
                int MaxMultiple = Shove._Convert.StrToInt(dtLottery.Rows[0]["MaxMultiple"].ToString(), -1);

                if ((LotteryID < 0) || (Price < 2) || (Multiple > MaxMultiple))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(10090)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 校验投注号码,计算注数、金额
                int Num = 0;
                LotteryNumber = GetLotteryNumber(LotteryID, PlayTypeID, LotteryNumber, ref Num);

                if (Num < 1)
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "投注号码错误(1010)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                double Money = Num * Price * Multiple;

                // 获取期号
                DataTable dtIsuse = new DAL.Tables.T_Isuses().Open(ConnectionString, "top 1 [ID]", "LotteryID = " + LotteryID.ToString() + " and GetDate() between StartTime and dbo.F_GetIsuseSystemEndTime([ID], " + PlayTypeID.ToString() + ") and IsOpened = 0", "");

                if ((dtIsuse == null) || (dtIsuse.Rows.Count < 1))
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "奖期未开启(1011)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                long IsuseID = Shove._Convert.StrToLong(dtIsuse.Rows[0]["ID"].ToString(), -1);

                if (IsuseID < 0)
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "奖期未开启(1012)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 校验余额
                if (Balance < Money)
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = "投注卡账户余额不足(1013)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 投注
                string ReturnDescription = "";
                long SchemeID = InitiateScheme(SiteID, UserID, IsuseID, PlayTypeID, "本方案由用户手动编写短信代码投注(系统)", "短信ID:" + ID + "\r\n短信内容:" + Content, LotteryNumber, "", Multiple, Money, 0, Share, BuyShare, "", 0, ref ReturnDescription);

                if (SchemeID < 0)
                {
                    t_SmsBettings.HandleResult.Value = -1;
                    t_SmsBettings.HandleDescription.Value = ReturnDescription + "(1015)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                t_SmsBettings.SchemeID.Value = SchemeID;
                t_SmsBettings.HandleResult.Value = 1;
                t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                #endregion
            }
        }
예제 #3
0
        private void Receive()  // 接收短信
        {
            if ((Betting_SMS_UserID == "") || (Betting_SMS_UserPassword == "") || (segg == null))
            {
                return;
            }

            SMS.Eucp.Gateway.CallResult Result = segg.ReceiveSMS();

            if (Result.Code < 0)
            {
                msg.Send("Receive SMS fail." + Result.Description);
                log.Write("Receive SMS fail." + Result.Description);

                return;
            }

            if (segg.rsc.Count < 1)
            {
                return;
            }

            // 写入数据库
            DAL.Tables.T_SmsBettings t_SmsBettings = new DAL.Tables.T_SmsBettings();

            for (int i = 0; i < segg.rsc.Count; i++)
            {
                t_SmsBettings.SMSID.Value = 0;
                t_SmsBettings.From.Value = segg.rsc[i].FromMobile;
                t_SmsBettings.Content.Value = segg.rsc[i].Content;
                t_SmsBettings.HandleResult.Value = 0;

                if (t_SmsBettings.Insert(ConnectionString) < 0)
                {
                    msg.Send("Write SMS fail.");
                    log.Write("Write SMS fail.");

                    continue;
                }
            }
        }
예제 #4
0
        private void Betting()  // 解析,投注
        {
            DAL.Tables.T_SmsBettings t_SmsBettings = new DAL.Tables.T_SmsBettings();
            DataTable dt = t_SmsBettings.Open(ConnectionString, "", "HandleResult = 0", "[ID]");

            if (dt == null)
            {
                msg.Send("Read SMS fail.");
                log.Write("Read SMS fail.");

                return;
            }

            foreach (DataRow dr in dt.Rows)
            {
                string ID      = dr["ID"].ToString();
                string Mobile  = dr["From"].ToString().Trim();
                string Content = Shove._Convert.ToDBC(dr["Content"].ToString()).Trim();

                if ((Mobile == "") || (Content == ""))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1000)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                string[] Contents = Content.Split(';');

                if ((Contents == null) || (Contents.Length != 6))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1001)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 1;501;1;1;010203040506+01|010203040506+01;#2                          站点ID;玩法ID;总份数;认购份数;号码|号码;#倍数

                long SiteID = Shove._Convert.StrToLong(Contents[0], -1);

                if (SiteID < 0)
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1002)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                if (new DAL.Tables.T_Sites().GetCount(ConnectionString, "[ID] = " + SiteID.ToString()) < 0)
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1003)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                #region 投注

                if (!Contents[5].StartsWith("#"))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1004)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                int    PlayTypeID    = Shove._Convert.StrToInt(Contents[1], -1);
                int    Share         = Shove._Convert.StrToInt(Contents[2], -1);
                int    BuyShare      = Shove._Convert.StrToInt(Contents[3], -1);
                string LotteryNumber = Contents[4].Trim();
                int    Multiple      = Shove._Convert.StrToInt(Contents[5].Substring(1, Contents[5].Length - 1), -1);

                if ((PlayTypeID < 0) || (BuyShare < 0) || (Share < BuyShare) || (LotteryNumber == "") || (Multiple < 0))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1005)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 根据手机获取用户
                DataTable dtUsers = new DAL.Tables.T_Users().Open(ConnectionString, "[ID], Balance", "SiteID = " + SiteID.ToString() + " and Mobile = '" + Mobile + "' and isMobileValided = 1", "");

                if ((dtUsers == null) || (dtUsers.Rows.Count != 1))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "用户不存在(1006)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                long   UserID  = Shove._Convert.StrToLong(dtUsers.Rows[0]["ID"].ToString(), -1);
                double Balance = Shove._Convert.StrToDouble(dtUsers.Rows[0]["Balance"].ToString(), 0);

                if (UserID < 0)
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "用户不存在(1007)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 获取彩种、同时也校验了玩法
                DataTable dtLottery = new DAL.Tables.T_PlayTypes().Open(ConnectionString, "LotteryID, Price, MaxMultiple", "[ID] = " + PlayTypeID.ToString(), "");

                if ((dtLottery == null) || (dtLottery.Rows.Count < 1))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(1008)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                int    LotteryID   = Shove._Convert.StrToInt(dtLottery.Rows[0]["LotteryID"].ToString(), -1);
                double Price       = Shove._Convert.StrToDouble(dtLottery.Rows[0]["Price"].ToString(), -1);
                int    MaxMultiple = Shove._Convert.StrToInt(dtLottery.Rows[0]["MaxMultiple"].ToString(), -1);

                if ((LotteryID < 0) || (Price < 2) || (Multiple > MaxMultiple))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "短信格式错误(10090)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 校验投注号码,计算注数、金额
                int Num = 0;
                LotteryNumber = GetLotteryNumber(LotteryID, PlayTypeID, LotteryNumber, ref Num);

                if (Num < 1)
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "投注号码错误(1010)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                double Money = Num * Price * Multiple;

                // 获取期号
                DataTable dtIsuse = new DAL.Tables.T_Isuses().Open(ConnectionString, "top 1 [ID]", "LotteryID = " + LotteryID.ToString() + " and GetDate() between StartTime and dbo.F_GetIsuseSystemEndTime([ID], " + PlayTypeID.ToString() + ") and IsOpened = 0", "");

                if ((dtIsuse == null) || (dtIsuse.Rows.Count < 1))
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "奖期未开启(1011)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                long IsuseID = Shove._Convert.StrToLong(dtIsuse.Rows[0]["ID"].ToString(), -1);

                if (IsuseID < 0)
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "奖期未开启(1012)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 校验余额
                if (Balance < Money)
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = "投注卡账户余额不足(1013)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                // 投注
                string ReturnDescription = "";
                long   SchemeID          = InitiateScheme(SiteID, UserID, IsuseID, PlayTypeID, "本方案由用户手动编写短信代码投注(系统)", "短信ID:" + ID + "\r\n短信内容:" + Content, LotteryNumber, "", Multiple, Money, 0, Share, BuyShare, "", 0, ref ReturnDescription);

                if (SchemeID < 0)
                {
                    t_SmsBettings.HandleResult.Value      = -1;
                    t_SmsBettings.HandleDescription.Value = ReturnDescription + "(1015)";
                    t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                    continue;
                }

                t_SmsBettings.SchemeID.Value     = SchemeID;
                t_SmsBettings.HandleResult.Value = 1;
                t_SmsBettings.Update(ConnectionString, "[ID] = " + ID);

                #endregion
            }
        }