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

83 lines
No EOL
3.3 KiB
C++

#include "StdAfx.h"
#include "DNAppellationTask.h"
#include "DNConnection.h"
#include "DNSQLConnectionManager.h"
#include "DNSQLMembership.h"
#include "DNSQLWorld.h"
#include "Log.h"
CDNAppellationTask::CDNAppellationTask(CDNConnection* pConnection)
: CDNMessageTask(pConnection)
{
}
CDNAppellationTask::~CDNAppellationTask(void)
{
}
void CDNAppellationTask::OnRecvMessage(int nThreadID, int nMainCmd, int nSubCmd, char* pData)
{
CDNSQLMembership *pMembershipDB = NULL;
CDNSQLWorld *pWorldDB = NULL;
int nRet = ERROR_DB;
switch (nSubCmd)
{
case QUERY_ADDAPPELLATION:
{
TQAddAppellation *pUpdate = (TQAddAppellation*)pData;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pUpdate->cWorldSetID);
if (pWorldDB){
nRet = pWorldDB->QueryAddAppellation(pUpdate->biCharacterDBID, pUpdate->nAppellationID, pUpdate->Appellation);
if (nRet != ERROR_NONE){
g_Log.Log(LogType::_ERROR, pUpdate->cWorldSetID, 0, pUpdate->biCharacterDBID, 0, L"[CDBID:%lld] [QUERY_ADDAPPELLATION:%d] Query Error Ret:%d\r\n", pUpdate->biCharacterDBID, pUpdate->cWorldSetID, nRet);
m_pConnection->QueryResultError(pUpdate->nAccountDBID, nRet, nMainCmd, nSubCmd); // 디비에서 뭔가 에러값을 뱉어냈으니 걍 끊어버린다
}
}
else{
g_Log.Log(LogType::_ERROR, pUpdate->cWorldSetID, 0, pUpdate->biCharacterDBID, 0, L"[CDBID:%lld] [QUERY_ADDAPPELLATION:%d] pWorldDB not found\r\n", pUpdate->biCharacterDBID, pUpdate->cWorldSetID);
}
}
break;
case QUERY_SELECTAPPELLATION:
{
TQSelectAppellation *pUpdate = (TQSelectAppellation*)pData;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pUpdate->cWorldSetID);
if (pWorldDB){
nRet = pWorldDB->QueryChoiceAppellation(pUpdate->biCharacterDBID, pUpdate->nSelectAppellation, pUpdate->cAppellationKind);
if (nRet != ERROR_NONE){
g_Log.Log(LogType::_ERROR, pUpdate->cWorldSetID, 0, pUpdate->biCharacterDBID, 0, L"[CDBID:%lld] [QUERY_SELECTAPPELLATION:%d] Query Error Ret:%d\r\n", pUpdate->biCharacterDBID, pUpdate->cWorldSetID, nRet);
m_pConnection->QueryResultError(pUpdate->nAccountDBID, nRet, nMainCmd, nSubCmd); // 디비에서 뭔가 에러값을 뱉어냈으니 걍 끊어버린다
}
}
else{
g_Log.Log(LogType::_ERROR, pUpdate->cWorldSetID, 0, pUpdate->biCharacterDBID, 0, L"[CDBID:%lld] [QUERY_SELECTAPPELLATION:%d] pWorldDB not found\r\n", pUpdate->biCharacterDBID, pUpdate->cWorldSetID);
}
}
break;
case QUERY_DELETEAPPELLATION:
{
TQDelAppellation *pDelete = (TQDelAppellation*)pData;
pWorldDB = g_SQLConnectionManager.FindWorldDB(nThreadID, pDelete->cWorldSetID);
if (pWorldDB){
nRet = pWorldDB->QueryDeleteAppellation(pDelete->biCharacterDBID, pDelete->nDelAppellation);
if (nRet != ERROR_NONE){
g_Log.Log(LogType::_ERROR, pDelete->cWorldSetID, 0, pDelete->biCharacterDBID, 0, L"[CDBID:%lld] [QUERY_DELETEAPPELLATION:%d] Query Error Ret:%d\r\n", pDelete->biCharacterDBID, pDelete->cWorldSetID, nRet);
m_pConnection->QueryResultError(pDelete->nAccountDBID, nRet, nMainCmd, nSubCmd); // 디비에서 뭔가 에러값을 뱉어냈으니 걍 끊어버린다
}
}
else{
g_Log.Log(LogType::_ERROR, pDelete->cWorldSetID, 0, pDelete->biCharacterDBID, 0, L"[CDBID:%lld] [QUERY_DELETEAPPELLATION:%d] pWorldDB not found\r\n", pDelete->biCharacterDBID, pDelete->cWorldSetID);
}
}
break;
}
}