DragonNest/Server/DNDBServer/DNGuildRecruitSystemTask.cpp
2024-12-19 09:48:26 +08:00

287 lines
No EOL
12 KiB
C++

#include "StdAfx.h"
#include "DNGuildRecruitSystemTask.h"
#include "DNConnection.h"
#include "DNSQLConnectionManager.h"
#include "DNSQLMembership.h"
#include "DNSQLWorld.h"
#include "Log.h"
#include "Util.h"
CDNGuildRecruitSystemTask::CDNGuildRecruitSystemTask(CDNConnection* pConnection)
: CDNMessageTask(pConnection)
{
}
CDNGuildRecruitSystemTask::~CDNGuildRecruitSystemTask(void)
{
}
void CDNGuildRecruitSystemTask::OnRecvMessage(int nThreadID, int nMainCmd, int nSubCmd, char* pData)
{
CDNSQLWorld *pWorldDB = NULL;
int nRet = ERROR_DB;
switch( nSubCmd )
{
case QUERY_GET_PAGEGUILDRECRUIT:
{
TQGetGuildRecruit* pPacket = reinterpret_cast<TQGetGuildRecruit*>(pData);
TAGetGuildRecruit Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
Packet.cJobCode = pPacket->cJobCode;
Packet.cLevel = pPacket->cLevel;
Packet.uiPage = pPacket->uiPage;
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
_wcscpy( Packet.wszGuildName, _countof(Packet.wszGuildName), pPacket->wszGuildName, (int)wcslen(pPacket->wszGuildName) );
#endif
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryGetPageGuildRecruit( pPacket, &Packet );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_GET_PAGEGUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
int iSize = sizeof(Packet)-sizeof(Packet.GuildRecruitList)+(Packet.cCount*sizeof(Packet.GuildRecruitList[0]));
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), iSize );
}
break;
case QUERY_GET_PAGEGUILDRECRUITCHARACTER:
{
TQGetGuildRecruitCharacter* pPacket = reinterpret_cast<TQGetGuildRecruitCharacter*>(pData);
TAGetGuildRecruitCharacter Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
Packet.nGuildDBID = pPacket->nGuildDBID;
Packet.cWorldSetID = pPacket->cWorldSetID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryGetPageGuildRecruitCharacter( pPacket, &Packet );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_GET_PAGEGUILDRECRUITCHARACTER:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
int iSize = sizeof(Packet)-sizeof(Packet.GuildRecruitCharacterList)+(Packet.cCount*sizeof(Packet.GuildRecruitCharacterList[0]));
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), iSize );
}
break;
case QUERY_GET_MYGUILDRECRUIT:
{
TQGetMyGuildRecruit* pPacket = reinterpret_cast<TQGetMyGuildRecruit*>(pData);
TAGetMyGuildRecruit Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryMyGuildRecruit( pPacket, &Packet );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_GET_MYGUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
int iSize = sizeof(Packet)-sizeof(Packet.GuildRecruitList)+(Packet.cCount*sizeof(Packet.GuildRecruitList[0]));
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), iSize );
}
break;
case QUERY_GET_GUILDRECRUIT_REQUESTCOUNT:
{
TQGetGuildRecruitRequestCount* pPacket = reinterpret_cast<TQGetGuildRecruitRequestCount*>(pData);
TAGetGuildRecruitRequestCount Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryGuildRecruitRequestCount( pPacket, &Packet );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_GET_GUILDRECRUIT_REQUESTCOUNT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_REGISTERINFO_GUILDRECRUIT:
{
TQRegisterInfoGuildRecruit* pPacket = reinterpret_cast<TQRegisterInfoGuildRecruit*>(pData);
TARegisterInfoGuildRecruit Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryRegisterInofGuildRecruit( pPacket, &Packet );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_REGISTERINFO_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_REGISTERON_GUILDRECRUIT:
{
TQRegisterOnGuildRecruit* pPacket = reinterpret_cast<TQRegisterOnGuildRecruit*>(pData);
TARegisterOnGuildRecruit Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryRegisterOnGuildRecruit( pPacket );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_REGISTERON_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_REGISTERMOD_GUILDRECRUIT:
{
TQRegisterModGuildRecruit* pPacket = reinterpret_cast<TQRegisterModGuildRecruit*>(pData);
TARegisterModGuildRecruit Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryRegisterModGuildRecruit( pPacket );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_REGISTERMOD_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_REGISTEROFF_GUILDRECRUIT:
{
TQRegisterOffGuildRecruit* pPacket = reinterpret_cast<TQRegisterOffGuildRecruit*>(pData);
TARegisterOffGuildRecruit Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryRegisterOffGuildRecruit( pPacket );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_REGISTEROFF_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_REQUESTON_GUILDRECRUIT:
{
TQGuildRecruitRequestOn* pPacket = reinterpret_cast<TQGuildRecruitRequestOn*>(pData);
TAGuildRecruitRequestOn Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryGuildRecruitRequestOn( pPacket );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_REQUESTON_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_REQUESTOFF_GUILDRECRUIT:
{
TQGuildRecruitRequestOff* pPacket = reinterpret_cast<TQGuildRecruitRequestOff*>(pData);
TAGuildRecruitRequestOff Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryGuildRecruitRequestOff( pPacket );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_REQUESTOFF_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_ACCEPTON_GUILDRECRUIT:
{
TQGuildRecruitAcceptOn* pPacket = reinterpret_cast<TQGuildRecruitAcceptOn*>(pData);
TAGuildRecruitAcceptOn Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
Packet.biAddCharacterDBID = pPacket->biAcceptCharacterDBID;
_wcscpy( Packet.wszToCharacterName, _countof(Packet.wszToCharacterName), pPacket->wszToCharacterName, (int)wcslen(pPacket->wszToCharacterName) );
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryGuildRecruitAcceptOn( pPacket, &Packet );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_ACCEPTON_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_ACCEPTOFF_GUILDRECRUIT:
{
TQGuildRecruitAcceptOff* pPacket = reinterpret_cast<TQGuildRecruitAcceptOff*>(pData);
TAGuildRecruitAcceptOff Packet;
memset( &Packet, 0, sizeof(Packet) );
Packet.nRetCode = ERROR_DB;
Packet.nAccountDBID = pPacket->nAccountDBID;
Packet.biDenyCharacterDBID = pPacket->biDenyCharacterDBID;
_wcscpy( Packet.wszToCharacterName, _countof(Packet.wszToCharacterName), pPacket->wszToCharacterName, (int)wcslen(pPacket->wszToCharacterName) );
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
Packet.nRetCode = pWorldDB->QueryGuildRecruitAcceptOff( pPacket, &Packet );
else
g_Log.Log( LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[ADBID:%d] [QUERY_ACCEPTOFF_GUILDRECRUIT:%d] WorldDB not found\r\n", pPacket->nAccountDBID, pPacket->cWorldSetID);
m_pConnection->AddSendData( nMainCmd, nSubCmd, reinterpret_cast<char*>(&Packet), sizeof(Packet) );
}
break;
case QUERY_DELETE_GUILDRECRUIT:
{
TQDelGuildRecruit *pPacket = reinterpret_cast<TQDelGuildRecruit *>(pData);
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pPacket->cWorldSetID);
if (pWorldDB)
{
int nRetCode = 0;
nRetCode = pWorldDB->QueryDelGuildRecruit(pPacket);
if (ERROR_NONE != nRetCode)
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[QUERY_DELETE_GUILDRECRUIT] query error (ret:%d)\r\n", nRetCode);
}
else
g_Log.Log(LogType::_ERROR, pPacket->cWorldSetID, pPacket->nAccountDBID, 0, 0, L"[QUERY_DELETE_GUILDRECRUIT] worldDB not found\r\n");
}
break;
}
}