94 lines
No EOL
3.2 KiB
C++
94 lines
No EOL
3.2 KiB
C++
|
|
#include "StdAfx.h"
|
|
#include "DNDonationTask.h"
|
|
#include "DNConnection.h"
|
|
#include "DNSQLConnectionManager.h"
|
|
#include "DNSQLWorld.h"
|
|
#include "Log.h"
|
|
|
|
#if defined (PRE_ADD_DONATION)
|
|
|
|
CDNDonationTask::CDNDonationTask(CDNConnection* pConnection)
|
|
: CDNMessageTask(pConnection)
|
|
{
|
|
}
|
|
|
|
CDNDonationTask::~CDNDonationTask()
|
|
{
|
|
}
|
|
|
|
void CDNDonationTask::OnRecvMessage(int nThreadID, int nMainCmd, int nSubCmd, char* pData)
|
|
{
|
|
switch (nSubCmd)
|
|
{
|
|
case QUERY_DONATE:
|
|
{
|
|
TQDonate* pPacket = reinterpret_cast<TQDonate*>(pData);
|
|
|
|
CDNSQLWorld* pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
|
|
if (!pWorldDB)
|
|
{
|
|
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, 0, pPacket->biCharacterDBID, 0, L"[CDBID:%I64d] [QUERY_DONATE:%d] pWorldDB not found\r\n", pPacket->biCharacterDBID, pPacket->cWorldSetID);
|
|
break;
|
|
}
|
|
|
|
TADonate Ack;
|
|
ZeroMemory(&Ack, sizeof(Ack));
|
|
Ack.nAccountDBID = pPacket->nAccountDBID;
|
|
Ack.nRetCode = pWorldDB->QueryDonate(pPacket);
|
|
if (Ack.nRetCode != ERROR_NONE)
|
|
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, 0, pPacket->biCharacterDBID, 0, L"[CDBID:%I64d] [QUERY_DONATE:%d] Query Error Ret:%d\r\n", pPacket->biCharacterDBID, pPacket->cWorldSetID, Ack.nRetCode);
|
|
|
|
m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast<char*>(&Ack), sizeof(Ack));
|
|
}
|
|
break;
|
|
|
|
case QUERY_DONATION_RANKING:
|
|
{
|
|
TQDonationRanking* pPacket = reinterpret_cast<TQDonationRanking*>(pData);
|
|
|
|
CDNSQLWorld* pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
|
|
if (!pWorldDB)
|
|
{
|
|
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, 0, pPacket->biCharacterDBID, 0, L"[CDBID:%I64d] [QUERY_DONATION_RANKING:%d] pWorldDB not found\r\n", pPacket->biCharacterDBID, pPacket->cWorldSetID);
|
|
break;
|
|
}
|
|
|
|
TADonationRaking Ack;
|
|
ZeroMemory(&Ack, sizeof(Ack));
|
|
Ack.nAccountDBID = pPacket->nAccountDBID;
|
|
Ack.nRetCode = pWorldDB->QueryDonationRanking(pPacket, Ack);
|
|
if (Ack.nRetCode != ERROR_NONE)
|
|
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, 0, pPacket->biCharacterDBID, 0, L"[CDBID:%I64d] [QUERY_DONATION_RANKING:%d] Query Error Ret:%d\r\n", pPacket->biCharacterDBID, pPacket->cWorldSetID, Ack.nRetCode);
|
|
|
|
m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast<char*>(&Ack), sizeof(Ack));
|
|
}
|
|
break;
|
|
|
|
case QUERY_DONATION_TOP_RANKER:
|
|
{
|
|
TQDonationTopRanker* pPacket = reinterpret_cast<TQDonationTopRanker*>(pData);
|
|
|
|
CDNSQLWorld* pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
|
|
if (!pWorldDB)
|
|
{
|
|
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, 0, 0, 0, L"[QUERY_DONATION_TOP_RANKER:%d] pWorldDB not found\r\n", pPacket->cWorldSetID);
|
|
break;
|
|
}
|
|
|
|
TADonationTopRanker Ack;
|
|
ZeroMemory(&Ack, sizeof(Ack));
|
|
Ack.cWorldID = pPacket->cWorldSetID;
|
|
Ack.nRetCode = pWorldDB->QueryDonationTopRanker(pPacket, Ack);
|
|
if (Ack.nRetCode != ERROR_NONE)
|
|
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, 0, 0, 0, L"[QUERY_DONATION_TOP_RANKER:%d] Query Error Ret:%d\r\n", pPacket->cWorldSetID, Ack.nRetCode);
|
|
|
|
m_pConnection->AddSendData(nMainCmd, nSubCmd, reinterpret_cast<char*>(&Ack), sizeof(Ack));
|
|
}
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
#endif // #if defined (PRE_ADD_DONATION)
|