#include "Stdafx.h" #include "DNSQLWorldGuildWar.h" #include "TimeSet.h" CDNSQLWorldGuildWar::CDNSQLWorldGuildWar(void): CSQLConnection() { } CDNSQLWorldGuildWar::~CDNSQLWorldGuildWar(void) { } // ½ºÄÉÁì ¼ÂÆÃ int CDNSQLWorldGuildWar::QueryAddGuildWarSchedule( std::vector& vSplit, int nScheduleID ) { CTimeSet tPreparation(vSplit[0].c_str(), true); CTimeSet tTrial(vSplit[1].c_str(), true); CTimeSet tReward(vSplit[2].c_str(), true); CTimeSet tPreparationEnd(tTrial); tPreparationEnd.AddSecond(-30); CTimeSet tTrialEnd(tReward); tTrialEnd.AddSecond(-30); CTimeSet tRewardEnd(vSplit[3].c_str(), true); if (CheckConnect() < ERROR_NONE){ return ERROR_DB; } SQLRETURN RetCode; SQLLEN cblen; CDNSqlLen SqlLen[8]; int nResult = ERROR_DB, sqlparam = 0; memset(&m_wszQuery, 0, sizeof(m_wszQuery)); swprintf(m_wszQuery, L"{?=CALL dbo.P_AddGuildWarSchedule('%d',?,?,?,?,?,?,2)}", nScheduleID); RetCode = SQLPrepare(m_hstmt, m_wszQuery, SQL_NTSL); if (CheckRetCode(RetCode, L"SQLPrepare") == ERROR_NONE) { DBTIMESTAMP temp[6] = {0,}; int nNo = 1; SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_OUTPUT, SQL_INTEGER, SQL_INTEGER, sizeof(int), 0, &nResult, sizeof(int), &cblen); temp[0] = tPreparation.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[0], sizeof(DBTIMESTAMP), SqlLen[0].Get(SQL_TIMESTAMP_LEN)); temp[1] = tPreparationEnd.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[1], sizeof(DBTIMESTAMP), SqlLen[1].Get(SQL_TIMESTAMP_LEN)); temp[2] = tTrial.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[2], sizeof(DBTIMESTAMP), SqlLen[2].Get(SQL_TIMESTAMP_LEN)); temp[3] = tTrialEnd.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[3], sizeof(DBTIMESTAMP), SqlLen[3].Get(SQL_TIMESTAMP_LEN)); temp[4] = tReward.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[4], sizeof(DBTIMESTAMP), SqlLen[4].Get(SQL_TIMESTAMP_LEN)); temp[5] = tRewardEnd.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[5], sizeof(DBTIMESTAMP), SqlLen[5].Get(SQL_TIMESTAMP_LEN)); RetCode = SQLExecute(m_hstmt); if (CheckRetCode(RetCode, L"SQLExecute") != ERROR_NONE) return ERROR_DB; } CTimeSet tFinalStart = tReward; CTimeSet tFinalEnd = tReward; //tFinalEnd¿¡¼­ 10ºÐ ´õÇϱâ..(Åë°è³¾ ½Ã°£ ¿©À¯ ÁÖÀÚ) tFinalEnd.AddSecond(10*60); // º»¼± ±â°£ ¼ÂÆÃ for( int i=4; i>0; --i) { CDNSqlLen SqlLentemp[2]; memset(&m_wszQuery, 0, sizeof(m_wszQuery)); swprintf(m_wszQuery, L"{?=CALL dbo.P_AddGuildWarFinalSchedule('%d','%d',?,?)}", nScheduleID, i); tFinalStart = tFinalEnd; tFinalStart.AddSecond(60); tFinalEnd.AddSecond(38*60); RetCode = SQLPrepare(m_hstmt, m_wszQuery, SQL_NTSL); if (CheckRetCode(RetCode, L"SQLPrepare") == ERROR_NONE) { DBTIMESTAMP temp[6] = {0,}; int nNo = 1; SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_OUTPUT, SQL_INTEGER, SQL_INTEGER, sizeof(int), 0, &nResult, sizeof(int), &cblen); temp[0] = tFinalStart.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[0], sizeof(DBTIMESTAMP), SqlLentemp[0].Get(SQL_TIMESTAMP_LEN)); temp[1] = tFinalEnd.GetDbTimeStamp(); SQLBindParameter(m_hstmt, nNo++, SQL_PARAM_INPUT, SQL_C_TIMESTAMP, SQL_TIMESTAMP, SQL_TIMESTAMP_LEN, 0, &temp[1], sizeof(DBTIMESTAMP), SqlLentemp[1].Get(SQL_TIMESTAMP_LEN)); RetCode = SQLExecute(m_hstmt); if (CheckRetCode(RetCode, L"SQLExecute") != ERROR_NONE) return ERROR_DB; } } return nResult; } // ±æµåÀü¿¹¼±³»¿ë ÃʱâÈ­(ÁÖÀÇ..¹Ì¼ÇÁ¡¼ö, Åë°è ÃʱâÈ­µÊ) int CDNSQLWorldGuildWar::QueryInitGuildWarTrial() { memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_DelGuildWarOpeningPointRecord}" ); return CommonReturnValueQuery(m_wszQuery); } // ÀαâÅõÇ¥ÃʱâÈ­ int CDNSQLWorldGuildWar::QueryInitGuildWarVote(const char* strCharName) { memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_CheatGuildWarPopularityVoteClear(N'%S')}", strCharName ); return CommonReturnValueQuery(m_wszQuery); } // ¿¹¼±Åë°è³»±â int CDNSQLWorldGuildWar::QuerySetGuildWarStats() { int nRetCode = ERROR_DB; memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_AddGuildWarOpeningPointTotal}" ); nRetCode = CommonReturnValueQuery(m_wszQuery); if( nRetCode != ERROR_NONE) return nRetCode; memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_AddGuildWarOpeningPointDailyTotal}" ); nRetCode = CommonReturnValueQuery(m_wszQuery); if( nRetCode != ERROR_NONE) return nRetCode; memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_AddGuildWarOpeningPointGuildTotal}" ); return CommonReturnValueQuery(m_wszQuery); } // ¿¹¼± º¸»ó ÃʱâÈ­(°³ÀÎ) int CDNSQLWorldGuildWar::QueryInitGuildWarRewardCharacter(const char* strCharName) { memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_CheatGuildWarRewardForCharactercClear(N'%S')}", strCharName ); return CommonReturnValueQuery(m_wszQuery); } // ¿¹¼± º¸»ó ÃʱâÈ­(±æµå) int CDNSQLWorldGuildWar::QueryInitGuildWarRewardGuild(const char* strGuildName) { memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_CheatGuildWarRewardForGuildClear(N'%S')}", strGuildName ); return CommonReturnValueQuery(m_wszQuery); } // º»¼± º¸»ó¹Þ±â Áö±Þ int CDNSQLWorldGuildWar::QuerySetGuildWarRewardFinal() { int nRetCode = ERROR_DB; memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_SendGuildWarPointQueue}" ); nRetCode = CommonReturnValueQuery(m_wszQuery); if( nRetCode != ERROR_NONE) return nRetCode; memset( m_wszQuery, 0, sizeof(m_wszQuery) ); swprintf(m_wszQuery, L"{?=CALL dbo.P_SendGuildWarSystemMailQueue}" ); return CommonReturnValueQuery(m_wszQuery); }