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); } }
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, "資料寫入錯誤"); } } }