示例#1
0
        private int RecordVip(int Type, int CountryIndex, int TargetUser, string NickName, DateTime NowDate) //寫入當日幸運兒 Type: 0=寫入資料 1=將資料改成已送出禮物
        {
            try
            {
                #region SQL語法

                string Tsql = "";
                if (Type == 0)
                {
                    Tsql  = "INSERT INTO XmasVip (Ver, UserID, NickName, CheckDate, SaveDate, IsCharge, IdentityCode) ";
                    Tsql += "VALUES ('" + Ver + "','" + TargetUser + "',N'" + NickName.Replace("'", "''") + "','" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','0','" + TargetUser.ToString() + NowDate.ToString("yyyyMMddHHmmss") + "')";
                }
                else
                {
                    Tsql = "UPDATE XmasVip SET IsCharge = '1' WHERE (Ver = '" + Ver + "') AND (UserID = '" + TargetUser + "') AND (IdentityCode = '" + TargetUser.ToString() + NowDate.ToString("yyyyMMddHHmmss") + "')";
                }

                #endregion

                int Result = 0;

                switch (CountryIndex)
                {
                case 1:
                    Result = SQLTW.Set_SQL_PuzzleWeb_Command(GSecurity.Encrypt(Tsql), SqlPassWord);
                    break;

                case 2:
                    Result = SQLHK.Set_SQL_PuzzleWeb_Command(GSecurity.Encrypt(Tsql), SqlPassWord);
                    break;

                default:
                    Result = CPDebug.Set_SQL_Command(GSecurity.Encrypt(Tsql), ServerPassWord);
                    break;
                }

                return(Result);
            }
            catch
            {
                return(0);
            }
        }
示例#2
0
        private void CheckVip(DateTime NowDate) //確認3個幸運兒並送出禮物
        {
            string TsqlA = "SELECT Ver, UserID, NickName, SaveDate FROM XmasMessage WHERE (Ver = '" + Ver.ToString() + "') AND (DATEPART(yyyy, SaveDate) = '" + DateTime.Now.AddDays(-1).ToString("yyyy") + "') AND (DATEPART(MM, SaveDate) = '" + DateTime.Now.AddDays(-1).ToString("MM") + "') AND (DATEPART(dd, SaveDate) = '" + DateTime.Now.AddDays(-1).ToString("dd") + "');";

            TsqlA += "SELECT Ver, UserID, NickName, CheckDate, SaveDate FROM XmasVip WHERE (Ver = '" + Ver.ToString() + "');";
            TsqlA += "SELECT Ver, UserID, NickName, CheckDate, SaveDate FROM XmasVip WHERE (Ver = '" + Ver.ToString() + "') AND (DATEPART(yyyy, SaveDate) = '" + DateTime.Now.ToString("yyyy") + "') AND (DATEPART(MM, SaveDate) = '" + DateTime.Now.ToString("MM") + "') AND (DATEPART(dd, SaveDate) = '" + DateTime.Now.ToString("dd") + "')";

            DataSet ds = new DataSet();

            for (int i = 0; i < CountryNum; i++)
            {
                try
                {
                    #region 讀表

                    switch (i)
                    {
                    case 1:
                        ds = SQLTW.Get_SQL_PuzzleWeb_DataSet(GSecurity.Encrypt(TsqlA), SqlPassWord);
                        break;

                    case 2:
                        ds = SQLHK.Get_SQL_PuzzleWeb_DataSet(GSecurity.Encrypt(TsqlA), SqlPassWord);
                        break;

                    default:
                        ds = CPDebug.Get_SQL_DataSet(GSecurity.Encrypt(TsqlA), ServerPassWord);
                        break;
                    }

                    #endregion

                    if (ds.Tables[2].Rows.Count == 0)
                    {
                        if (ds.Tables[0].Rows.Count >= 3)
                        {
                            if (ds.Tables[1].Rows.Count > 0)
                            {
                                //可使用名單
                                int      TotalU   = 0;
                                string[] NIckName = new string[0];
                                string[] MainID   = new string[0];

                                //已重複名單
                                int      TotalNU   = 0;
                                string[] BNIckName = new string[0];
                                string[] BMainID   = new string[0];

                                #region 篩選不重複玩家名單

                                for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                                {
                                    bool Alive = false;

                                    for (int k = 0; k < ds.Tables[1].Rows.Count; k++)
                                    {
                                        if (ds.Tables[0].Rows[j]["UserID"].ToString() == ds.Tables[1].Rows[k]["UserID"].ToString())
                                        {
                                            Alive = true;
                                        }
                                    }

                                    if (!Alive)
                                    {
                                        Array.Resize(ref NIckName, NIckName.Length + 1);
                                        Array.Resize(ref MainID, MainID.Length + 1);

                                        NIckName[TotalU] = ds.Tables[0].Rows[j]["NickName"].ToString();
                                        MainID[TotalU]   = ds.Tables[0].Rows[j]["UserID"].ToString();

                                        TotalU++;
                                    }
                                    else
                                    {
                                        Array.Resize(ref BNIckName, BNIckName.Length + 1);
                                        Array.Resize(ref BMainID, BMainID.Length + 1);

                                        BNIckName[TotalNU] = ds.Tables[0].Rows[j]["NickName"].ToString();
                                        BMainID[TotalNU]   = ds.Tables[0].Rows[j]["UserID"].ToString();

                                        TotalNU++;
                                    }
                                }
                                #endregion

                                if (TotalU >= 3)
                                {
                                    int[] RandomPick = GetRandomNum(TotalU, 3);

                                    for (int j = 0; j < RandomPick.Length; j++)
                                    {
                                        FinishVipWork(i, Convert.ToInt32(MainID[RandomPick[j]]), NIckName[RandomPick[j]].ToString(), NowDate);
                                    }
                                }
                                else
                                {
                                    if (TotalU > 0)
                                    {
                                        if (TotalU > 1)
                                        {
                                            int[] RandomPick = GetRandomNum(TotalU, TotalU);

                                            for (int j = 0; j < RandomPick.Length; j++)
                                            {
                                                FinishVipWork(i, Convert.ToInt32(MainID[RandomPick[j]]), NIckName[RandomPick[j]].ToString(), NowDate);
                                            }
                                        }
                                        else
                                        {
                                            FinishVipWork(i, Convert.ToInt32(MainID[0]), NIckName[0].ToString(), NowDate);
                                        }
                                    }

                                    int[] NotUse = GetRandomNum(TotalNU, 3 - TotalU);

                                    for (int j = 0; j < NotUse.Length; j++)
                                    {
                                        FinishVipWork(i, Convert.ToInt32(BMainID[NotUse[j]]), BNIckName[NotUse[j]].ToString(), NowDate);
                                    }
                                }
                            }
                            else
                            {
                                if (ds.Tables[0].Rows.Count > 3)
                                {
                                    int[] RandomPick = GetRandomNum(ds.Tables[0].Rows.Count, 3);

                                    for (int j = 0; j < RandomPick.Length; j++)
                                    {
                                        FinishVipWork(i, Convert.ToInt32(ds.Tables[0].Rows[RandomPick[j]]["UserID"]), ds.Tables[0].Rows[RandomPick[j]]["NickName"].ToString(), NowDate);
                                    }
                                }
                                else
                                {
                                    for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                                    {
                                        FinishVipWork(i, Convert.ToInt32(ds.Tables[0].Rows[j]["UserID"]), ds.Tables[0].Rows[j]["NickName"].ToString(), NowDate);
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (ds.Tables[0].Rows.Count > 0)
                            {
                                for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                                {
                                    FinishVipWork(i, Convert.ToInt32(ds.Tables[0].Rows[j]["UserID"]), ds.Tables[0].Rows[j]["NickName"].ToString(), NowDate);
                                }
                            }
                            else
                            {
                                ShowMessage(i, DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + " 無任何人留言");
                            }
                        }
                    }
                    else
                    {
                        ShowMessage(i, "已選出幸運兒");
                    }
                }
                catch
                {
                    ShowMessage(i, "資料寫入錯誤");
                }
            }
        }