Files
2022-10-26 12:25:11 +08:00

321 lines
12 KiB
C++

#include "stdafx.h"
#include "GameServerQuery.h"
#include "./QueryPoolFactory.h"
__IMPL_SAFECUSTOMPOOL_PTR(Query_Warehouse_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_ItemSlotInfo_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_ItemSlotInfo_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Perk_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Perk_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Perk_Delete);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Perk_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SlotInfo_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SlotInfo_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SlotInfo_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Quest_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Quest_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_BattleRecords_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_BattleRecords_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_State_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_State_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_State_Delete);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_State_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionInfo_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionInfo_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionInfo_Update);
__IMPL_SAFECUSTOMPOOL_PTR(SelectEventQuery);
__IMPL_SAFECUSTOMPOOL_PTR(UdpateEventQuery);
__IMPL_SAFECUSTOMPOOL_PTR(EventStatusQuery);
__IMPL_SAFECUSTOMPOOL_PTR(EventItemRegQuery);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionRank_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionRecord_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionRecord_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionReward_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_MissionReward_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_Exist);
__IMPL_SAFECUSTOMPOOL_PTR(Query_WayPoint_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_WayPoint_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_WayPoint_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_WayPoint_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_WayPoint_Delete);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Password_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Ranking_Select_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_FateItemIssue_Proc);
//
__IMPL_SAFECUSTOMPOOL_PTR(Query_Collected_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Collected_Insert);
#ifdef _NA_20100420_CHANGE_SYSTEM_MEMO_LOGIC
__IMPL_SAFECUSTOMPOOL_PTR(Query_Domination_Reward_And_Delete);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Lotto_Reward_And_Delete);
#endif
//_NA_20100812_INTEGRATE_SYSTEM_MEMO_DOMINATION
__IMPL_SAFECUSTOMPOOL_PTR(Query_System_Memo_Reward_Item_Check_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_System_Memo_Reward_Item_Update_Select);
//C_NA_0_20100520_ACSYSTEM_CHANGED
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_Achievement_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Char_Achievement_Update);
__IMPL_SAFECUSTOMPOOL_PTR(CompositionOrDecompositionHistoryInsertQuery)
__IMPL_SAFECUSTOMPOOL_PTR(CompositionOrDecompositionHistorySelectQuery)
__IMPL_SAFECUSTOMPOOL_PTR(ExtendCharSlotQuery)
#ifdef _NA_003027_20111013_HONOR_SYSTEM
__IMPL_SAFECUSTOMPOOL_PTR(Query_HonorTitle_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_HonorTitle_AddOrRemove);
__IMPL_SAFECUSTOMPOOL_PTR(Query_FameRepute_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_FameRepute_Set);
__IMPL_SAFECUSTOMPOOL_PTR(Query_DailyQuest_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_DailyQuest_Update);
#endif //_NA_003027_20111013_HONOR_SYSTEM
#ifdef _NA_0_20110613_GAME_SHOP_RENEWAL
__IMPL_SAFECUSTOMPOOL_PTR(Query_Character_Exist);
#endif //NA_0_20110613_GAME_SHOP_RENEWAL
#ifdef _NA004034_20120102_POINT_WALLET_SYSTEM
__IMPL_SAFECUSTOMPOOL_PTR(Query_PointWallet_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_PointWallet_Update);
#endif //_NA004034_20120102_POINT_WALLET_SYSTEM
#ifdef _NA004034_20120102_GUILD_POINT_SYSTEM
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildPoint_Donation);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildPoint_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildPoint_Change);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildLevel_Change);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildRanking_Select);
#endif //_NA004034_20120102_GUILD_POINT_SYSTEM
#ifdef _NA_004034_20120102_GUILD_INTRODUCTION
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildIntroduction_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildIntroduction_Select);
#endif //_NA_004034_20120102_GUILD_INTRODUCTION
__IMPL_SAFECUSTOMPOOL_PTR(Query_Character_NameChange_Request);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildPenalty_Update);
#ifdef _NA_000000_20140120_SMART_NPC_SYSTEM
__IMPL_SAFECUSTOMPOOL_PTR(Query_Attendance_Update);
#endif //_NA_000000_20140120_SMART_NPC_SYSTEM
#ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION
__IMPL_SAFECUSTOMPOOL_PTR(Query_Attendance_Update_Mondschien);
#endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildJoinRequest_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildJoinRequest_Delete);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildJoinRequest_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildFacility_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_GuildFacility_Select);
#endif //_NA_007330_20140620_GUILD_SYSTEM_EXTENSION
#ifdef _NA_008012_20150204_SUN_RANKING_SYSTEM
__IMPL_SAFECUSTOMPOOL_PTR(Query_SunRanking_Update);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SunRanking_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SunRanking_Init);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SunRankingGrade_Init);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SunRankingGrade_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_SunRankingGrade_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_StatueItemSlotInfo_Insert);
__IMPL_SAFECUSTOMPOOL_PTR(Query_StatueItemSlotInfo_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_Statue_Char_Select);
__IMPL_SAFECUSTOMPOOL_PTR(Query_StatueCharInfo_Select);
#endif // _NA_008012_20150204_SUN_RANKING_SYSTEM
/////////////// DB ERROR CODE CONVERT TO SERVER ERROR CODE ///////////////
const INT DBResultConvert<GuildWarehouseTabExQuery>::ErrorCode[] =
{
RC::RC_ITEM_SUCCESS,
RC::RC_ITEM_GUILDWAREHOUSE_USENOT_SLOT_BY_GRADE, //1
RC::RC_ITEM_GUILDWAREHOUSE_NONE_USE_RIGHT, //2
RC::RC_ITEM_CANNOT_EXTEND_CASH_SLOT, //3
RC::RC_ITEM_FAILED,
};
#ifdef _NA_008012_20150204_SUN_RANKING_SYSTEM
VOID Query_SunRanking_Select::GetColumnInfo( ULONG row, ULONG col, ULONG*& pColPtr, LONG& lSize, SHORT& sColType )
{
sQueryResult* pTag = result_records_;
if (make_one_row == true)
{
std::map<CHARGUID, SunRankingPlayerInfo>::iterator find_iter =
infos.find(result_records_[0].char_guid);
if (find_iter == infos.end())
{
SunRankingPlayerInfo temp_sun_rank_player_info;
find_iter = infos.insert(std::make_pair(result_records_[0].char_guid, temp_sun_rank_player_info)).first;
find_iter->second.char_guid = result_records_[0].char_guid;
strncpy(find_iter->second.char_name, result_records_[0].char_name, MAX_CHARNAME_LENGTH);
find_iter->second.class_code = static_cast<eCHAR_TYPE>(result_records_[0].class_code);
find_iter->second.guild_guid = result_records_[0].guild_guid;
find_iter->second.score[result_records_[0].ranking_type] = result_records_[0].score;
}
else
{
find_iter->second.score[result_records_[0].ranking_type] = result_records_[0].score;
}
make_one_row = false;
}
switch (col)
{
case 0:
{
pColPtr = (ULONG *)&(pTag[0].char_guid);
lSize = sizeof(pTag[0].char_guid);
sColType = _GET_DB_TYPE(pTag[0].char_guid);
} break;
case 1:
{
pColPtr = (ULONG *)&(pTag[0].ranking_type);
lSize = sizeof(pTag[0].ranking_type);
sColType = _GET_DB_TYPE(pTag[0].ranking_type);
} break;
case 2:
{
pColPtr = (ULONG *)&(pTag[0].score);
lSize = sizeof(pTag[0].score);
sColType = _GET_DB_TYPE(pTag[0].score);
} break;
case 3:
{
pColPtr = (ULONG *)(pTag[0].char_name);
lSize = sizeof(pTag[0].char_name);
sColType = _GET_DB_TYPE(pTag[0].char_name);
} break;
case 4:
{
pColPtr = (ULONG *)&(pTag[0].class_code);
lSize = sizeof(pTag[0].class_code);
sColType = _GET_DB_TYPE(pTag[0].class_code);
} break;
case 5:
{
pColPtr = (ULONG *)&(pTag[0].guild_guid);
lSize = sizeof(pTag[0].guild_guid);
sColType = _GET_DB_TYPE(pTag[0].guild_guid);
make_one_row = true;
} break;
}
}
VOID Query_SunRanking_Select::GetLastColumnInfo()
{
if (make_one_row == true)
{
std::map<CHARGUID, SunRankingPlayerInfo>::iterator find_iter =
infos.find(result_records_[0].char_guid);
if (find_iter == infos.end())
{
SunRankingPlayerInfo temp_sun_rank_player_info;
find_iter = infos.insert(std::make_pair(result_records_[0].char_guid, temp_sun_rank_player_info)).first;
find_iter->second.char_guid = result_records_[0].char_guid;
strncpy(find_iter->second.char_name, result_records_[0].char_name, MAX_CHARNAME_LENGTH);
find_iter->second.class_code = static_cast<eCHAR_TYPE>(result_records_[0].class_code);
find_iter->second.guild_guid = result_records_[0].guild_guid;
find_iter->second.score[result_records_[0].ranking_type] = result_records_[0].score;
}
else
{
find_iter->second.score[result_records_[0].ranking_type] = result_records_[0].score;
}
make_one_row = false;
}
}
VOID Query_SunRankingGrade_Select::GetColumnInfo( ULONG row, ULONG col, ULONG*& pColPtr, LONG& lSize, SHORT& sColType )
{
sQueryResult* pTag = result_records_;
if (make_one_row == true)
{
std::map<std::pair<CHARGUID, int>, SunRankingGradeInfo>::iterator find_iter =
infos.find(std::make_pair(result_records_[0].char_guid, result_records_[0].ranking_type));
if (find_iter == infos.end())
{
SunRankingGradeInfo temp_sun_rank_grade_info;
temp_sun_rank_grade_info.char_guid = result_records_[0].char_guid;
temp_sun_rank_grade_info.ranking_type = result_records_[0].ranking_type;
temp_sun_rank_grade_info.grade = result_records_[0].grade;
temp_sun_rank_grade_info.score = result_records_[0].score;
infos.insert(std::make_pair(std::make_pair(result_records_[0].char_guid, result_records_[0].ranking_type)
, temp_sun_rank_grade_info));
}
else
{
find_iter->second.score = result_records_[0].score;
}
make_one_row = false;
}
switch (col)
{
case 0:
{
pColPtr = (ULONG *)&(pTag[0].char_guid);
lSize = sizeof(pTag[0].char_guid);
sColType = _GET_DB_TYPE(pTag[0].char_guid);
} break;
case 1:
{
pColPtr = (ULONG *)&(pTag[0].ranking_type);
lSize = sizeof(pTag[0].ranking_type);
sColType = _GET_DB_TYPE(pTag[0].ranking_type);
} break;
case 2:
{
pColPtr = (ULONG *)&(pTag[0].grade);
lSize = sizeof(pTag[0].grade);
sColType = _GET_DB_TYPE(pTag[0].grade);
} break;
case 3:
{
pColPtr = (ULONG *)&(pTag[0].score);
lSize = sizeof(pTag[0].score);
sColType = _GET_DB_TYPE(pTag[0].score);
make_one_row = true;
} break;
}
}
VOID Query_SunRankingGrade_Select::GetLastColumnInfo()
{
if (make_one_row == true)
{
std::map<std::pair<CHARGUID, int>, SunRankingGradeInfo>::iterator find_iter =
infos.find(std::make_pair(result_records_[0].char_guid, result_records_[0].ranking_type));
if (find_iter == infos.end())
{
SunRankingGradeInfo temp_sun_rank_grade_info;
temp_sun_rank_grade_info.char_guid = result_records_[0].char_guid;
temp_sun_rank_grade_info.ranking_type = result_records_[0].ranking_type;
temp_sun_rank_grade_info.grade = result_records_[0].grade;
temp_sun_rank_grade_info.score = result_records_[0].score;
infos.insert(std::make_pair(std::make_pair(result_records_[0].char_guid, result_records_[0].ranking_type)
, temp_sun_rank_grade_info));
}
else
{
find_iter->second.score = result_records_[0].score;
}
make_one_row = false;
}
}
#endif // _NA_008012_20150204_SUN_RANKING_SYSTEM