DragonNest/Server/ServerCommon/DNSQLMembership.h
2024-12-19 09:48:26 +08:00

202 lines
16 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
/* -----------------------------------------
Login, DB, Cash °¡ °°ÀÌ ¾²´Â ÆÄÀÏÀÓ
----------------------------------------- */
#include "SQLConnection.h"
#if defined(_LOGINSERVER)
#include "DNUserConnection.h"
#endif
class CDNSQLMembership: public CSQLConnection
{
public:
CDNSQLMembership(void);
~CDNSQLMembership(void);
int QueryGetDatabaseVersion( TDatabaseVersion* pA );
#if defined(_LOGINSERVER)
int QueryLogin(CDNUserConnection *pUserCon, WCHAR *pPassword, BYTE cStep, OUT Login::TQueryLoginOutput &LoginOutput);
#endif // _LOGINSERVER
int QueryGetCharacterCount(WCHAR *pAccountName, std::map<int,int>& mWorldCharCount);
int QueryLogout(UINT nAccountDBID, UINT nSessionID, const BYTE * pMachineID = NULL);
int QueryModLastConnectDate(UINT nAccountDBID);
int QueryAddAccountKey(UINT nAccountDBID, UINT nUserNo);
int QueryAddRestraint( DBDNWorldDef::RestraintTargetCode::eCode TargetCode, UINT uiAccountDBID, INT64 biCharacterDBID, int iReasonID, DBDNWorldDef::RestraintTypeCode::eCode TypeCode, WCHAR* pwszMemo, WCHAR* pwszRestraintMsg, TIMESTAMP_STRUCT StartDate, TIMESTAMP_STRUCT EndDate );
#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
int QueryAddBlockedIP(int nWorldID, UINT nAccountDBID, const char * pszIP);
int QueryGetSimpleConfigValue(TASimpleConfig * pSimpleConfig);
#endif //#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
#ifdef PRE_ADD_SEETMAINTENANCEFLAG
int QuerySetMaintenanceFlag(int nFlag);
#endif //#ifdef PRE_ADD_SEETMAINTENANCEFLAG
int QueryGetListRestraintForAccount(UINT nAccountDBID, OUT std::vector<TRestraintForAccountAndCharacter> &VecRestraint);
int QueryGetListRestraintForCharacter(INT64 biCharacterDBID, OUT std::vector<TRestraintForAccountAndCharacter> &VecRestraint);
int QueryGetGameOption(UINT nAccountDBID, OUT TGameOptions &Options);
int QueryModGameOption(UINT nAccountDBID, TGameOptions &Options);
int QueryAddCharacter(UINT nAccountDBID, WCHAR *pCharName, int nWorldID, int nDefaultMaxCharacterCountPerAccount, OUT INT64 &biCharacterDBID, OUT TIMESTAMP_STRUCT &CreateDate);
int QueryRollbackAddCharacter(INT64 biCharacterDBID);
int QueryDelCharacter(INT64 biCharacterDBID, WCHAR *pPrivateIp, WCHAR *pPublicIp, bool bFirstVillage, TIMESTAMP_STRUCT& DeleteDate );
int QueryReviveCharacter( INT64 biCharacterDBID, WCHAR* wszPrivateIP, WCHAR* wszPublicIP );
int QueryGetKeySettingOption( UINT uiAccountDBID, TKeySetting* pKeySetting );
int QueryModKeySettingOption( TQModKeySettingOption* pQ, TAModKeySettingOption* pA );
int QueryGetPadSettingOption( UINT uiAccountDBID, TPadSetting* pPadSetting );
int QueryModPadSettingOption( TQModPadSettingOption* pQ, TAModPadSettingOption* pA );
int QueryCheckPCRoomIP(char *pIp, bool &bPCbang, char &cPCbangGrade); // 5.PC¹æ IP ¿©ºÎ È®ÀÎ - P_CheckPCRoomIP
// ±¹°¡ ÄÚµå ¾ò¾î¿À±â
int QueryGetNationalityCode(UINT nAccountDBID, OUT BYTE &cRegion);
// Auth
int QueryBeginAuth(UINT uiAccountDBID, char& cCertifyingStep, int& nServerID, char& cWorldID, UINT& nSessionID, INT64& biCharacterDBID, LPCWSTR wszAccountName, LPCWSTR wszCharacterName, char cAccountLevel, BYTE bIsAdult, char nAge, BYTE nDailyCreateCount, int nPrmInt1);
int QueryStoreAuth(UINT uiAccountDBID, INT64 biCertifyingKey, int nCurServerID, char cWorldID, UINT nSessionID, INT64 biCharacterDBID, LPCWSTR wszAccountName, LPCWSTR wszCharacterName, BYTE bIsAdult, char nAge, BYTE nDailyCreateCount, int nPrmInt1, char cLastServerType);
int QueryCheckAuth(UINT uiAccountDBID, INT64 biCertifyingKey, int nCurServerID, OUT char& cWorldSetID, OUT UINT& nSessionID, OUT INT64& biCharacterDBID, OUT LPWSTR* wszAccountName, OUT LPWSTR* wszCharacterName, OUT char& cAccountLevel, OUT BYTE& bIsAdult, OUT char& nAge, OUT BYTE& nDailyCreateCount, OUT int& nPrmInt1, OUT char& cLastServerType);
int QueryResetAuth(UINT uiAccountDBID, UINT nSessionID);
int QueryResetAuthServer(int nServerID);
int QueryResetAuthByAccountWorld(UINT uiAccountDBID, char cWorldID, UINT nSessionID);
int QuerySetWorldIDAuth(char cWorldID, UINT nAccountDBID);
// 2Â÷ ÀÎÁõ °ü·Ã Äõ¸®
int QueryValidataSecondAuthPassphrase( UINT uiAccountDBID, const WCHAR* pszPW, BYTE& cFailCount );
int QueryModSecondAuthPassphrase( UINT uiAccountDBID, const WCHAR* pszOldPW, const WCHAR* pszNewPW, BYTE& cFailCount );
int QueryModSecondAuthLockFlag( UINT uiAccountDBID, bool bLock );
int QueryGetSecondAuthStatus( UINT uiAccountDBID, bool& bSetPW, bool& bLock, __time64_t& tResetDate );
int QueryInitSecondAuth( UINT uiAccountDBID );
#if defined(PRE_ADD_SHA256)
int QueryValidataSecondAuthPassphraseByServer( UINT uiAccountDBID, const WCHAR* pszPW, BYTE& cFailCount );
int QueryModSecondAuthPassphraseByServer(UINT uiAccountDBID, const WCHAR* pszOldPW, const WCHAR* pszNewPW, BYTE& cFailCount );
#endif
#ifdef PRE_ADD_23829
int QueryCheckLastSecondAuthNotifyDate(UINT nAccountDBID, int nCheckPeriod); //Period : day
int QueryModLastSecondAuthNotifyDate(UINT nAccountDBID);
#endif
int QueryCheckIntroducedAccount(UINT nAccountDBID, OUT bool &bCheckResult);
// Cash
int QueryGetProduct(int nProductID, TCashCommodityData *Product); // 1.À¯·á »óǰ ´Ü°Ç Á¶È¸ - P_GetProduct
#ifdef PRE_ADD_LIMITED_CASHITEM
int QueryAddPurchaseOrderByCash(INT64 biCharacterDBID, bool bPCBang, int nItemSN, int nPrice, int nLimitCount, int nSelectItemID, BYTE cSelectItemOption, int nLimitedItemMax, int nTotalPrice, char *pIp,
bool bGift, WCHAR *pReceiveCharacterName, WCHAR *pMemo, OUT INT64 &biPurchaseOrderID, OUT char* pPurchaseOrderDetailID=NULL, const char *pszRefundAbles=NULL, bool bCheatFlag=false); // 2.ij½¬ °áÁ¦ ¿äû - P_AddPurchaseOrderByCash
#else //#ifdef PRE_ADD_LIMITED_CASHITEM
// ´Üǰ..
int QueryAddPurchaseOrderByCash(INT64 biCharacterDBID, bool bPCBang, int nItemSN, int nPrice, int nLimitCount, int nSelectItemID, BYTE cSelectItemOption, int nTotalPrice, char *pIp,
bool bGift, WCHAR *pReceiveCharacterName, WCHAR *pMemo, OUT INT64 &biPurchaseOrderID, OUT char* pPurchaseOrderDetailID=NULL, const char *pszRefundAbles=NULL, bool bCheatFlag=false); // 2.ij½¬ °áÁ¦ ¿äû - P_AddPurchaseOrderByCash
#endif //#ifdef PRE_ADD_LIMITED_CASHITEM
// ¿©·¯°³ µ¿½Ã..
int QueryAddPurchaseOrderByCash(INT64 biCharacterDBID, bool bPCBang, std::vector<string> &VecItemString, int nTotalPrice, char *pIp,
bool bGift, WCHAR *pReceiveCharacterName, WCHAR *pMemo, OUT INT64 &biPurchaseOrderID, OUT char* pPurchaseOrderDetailIDs=NULL, bool bCheatFlag=false); // 2.ij½¬ °áÁ¦ ¿äû - P_AddPurchaseOrderByCash
int QuerySetPurchaseOrderResult(INT64 biPurchaseOrderID, char cOrderStatusCode, char *pOrderKey, int nOrderResult, int nPetalAmount, int nPaidCashAmount, char *pContextKey = NULL); // 3.ij½¬ °áÁ¦ ÀÀ´ä ±â·Ï - P_SetPurchaseOrderResult
int QueryRollbackPurchaseOrderByCash(INT64 biPurchaseOrderID, OUT char *pOrderKey, OUT int &nProductID); // 4.ij½¬ °áÁ¦ Ãë¼Ò ¿äû - P_RollbackPurchaseOrderByCash
int QuerySetRollbackPurchaseOrderResult(INT64 biOrderID, char cStatusCode, int nRollbackResult); // 5.ij½¬ °áÁ¦ Ãë¼Ò ÀÀ´ä ±â·Ï - P_SetRollbackPurchaseOrderResult
#if defined(PRE_ADD_LIMITED_CASHITEM) && defined(_CASHSERVER)
int QueryGetLimitedItem();
#endif //#if defined(PRE_ADD_LIMITED_CASHITEM) && defined(_CASHSERVER)
#if defined(PRE_ADD_CASH_REFUND)
int QueryGetListRefundableProducts(INT64 biCharacterDBID, TAPaymentItemList* pPaymentItemList, TAPaymentPackageItemList* pPaymentPackageItemList, int nRefundLimitPeriod = 7); // 6. °áÁ¦ Àκ¥Å丮 ¸ñ·Ï ¿äû - P_GetListRefundableProducts
int QueryModPurchaseOrderDetail(INT64 biPurchaseOrderDetailID); // °áÀçÀκ¥¿¡¼­ ij½¬Àκ¥À¸·Î ¿Å±â±â.
int QueryCashRefund(INT64 biPurchaseOrderDetailID, int nRefundLimitPeriod = 7 );
#endif
int QueryCheatGiftClear(INT64 biCharacterDBID);
int QueryIncreaseVIPBasicPoint(INT64 biCharacterDBID, int nBasicPoint, INT64 biPurchaseOrderID, short wVIPPeriod, bool bAutoPay, OUT int &nVIPTotalPoint, OUT __time64_t &tVIPEndDate); // 6.VIP ±âº» Æ÷ÀÎÆ® °¡»ê - P_IncreaseVIPBasicPoint
int QueryGetVIPPoint(INT64 biCharacterDBID, OUT int &nVIPTotalPoint, OUT __time64_t &tVIPEndDate, OUT bool &bAutoPay); // 7.VIP ±â°£ ¹× Æ÷ÀÎÆ® Á¶È¸ - P_GetVIPPoint
int QueryModVIPAutoPayFlag(INT64 biCharacterDBID, bool bAutoPay); // 8.VIP ÀÚµ¿ °áÁ¦ »óÅ º¯°æ - P_ModVIPAutoPayFlag
int QueryAddBanOfSale(int nItemSN); // P_AddBanOfSale
int QueryGetListBanOfSale(std::vector<int> &VecProhibitList); // 2.ÆÇ¸Å ±ÝÁö »óǰ ¸ñ·Ï - P_GetListBanOfSale
int QueryGetPetalBalance(int nAccountDBID, OUT int &nPetalBalance); // 1.ÆäÅ» ÀÜ¾× Á¶È¸ - P_GetPetalBalance
int QueryPurchaseItemByPetal(INT64 biCharacterDBID, bool bPCBang, std::vector<string> &VecItemString, int nTotalPrice, char *pIp, OUT INT64 &biPurchaseOrderID); // 2.ÆäÅ» °áÁ¦ - P_PurchaseItemByPetal
int QueryRollbackPurchaseItemByPetal(INT64 biOrderID); // 3.ÆäÅ» °áÁ¦ Ãë¼Ò - P_RollbackPurchaseItemByPetal
int QueryAddPetalIncome(INT64 biCharacterDBID, INT64 biPurchaseOrderID, int nPetal, OUT int &nTotalPetal, bool bTrade=false); // 4. ÆäÅ» ÃæÀü(ÆäÅ» »óǰ±Ç »ç¿ë) - P_AddPetalIncome
#if defined( PRE_PVP_GAMBLEROOM )
int QueryAddPetalIncome(INT64 biCharacterDBID, INT64 biPurchaseOrderID, int nPetal, OUT int &nTotalPetal, BYTE cPetalChangeCode, INT64 nGambleDBID=0);
int QueryUsePetal(INT64 biCharacterDBID, int nPetal, BYTE cPetalChangeCode, INT64 nGambleDBID=0);
#endif
#if defined(PRE_ADD_CASH_REFUND)
int QueryAddPetalIncomeCashRefund(INT64 biCharacterDBID, INT64 biPurchaseOrderDetailID, int nPetal, OUT int &nTotalPetal); // 4. ÆäÅ» ÃæÀü - P_AddPetalIncomeForReward û¾àöȸ°ü·Ã °áÀçÀκ¥¿¡¼­ ij½¬Àκ¥À¸·Î ¿Å±æ¶§ »ç¿ëÇÕ´Ï´Ù
#endif
int QueryGetCashBalance(int nAccountDBID, WCHAR *pAccountName, int &nCashBalance);
int QueryDeductCash(int nAccountDBID, INT64 biPurchaseOrderID, int nDelCash, int &nCashOutgoID, int &nCashBalance);
#if defined( PRE_ADD_NEW_MONEY_SEED )
int QueryPurchaseItemBySeed(INT64 biCharacterDBID, bool bPCBang, std::vector<string> &VecItemString, int nTotalPrice, char *pIp, OUT INT64 &biPurchaseOrderID); // ½Ãµå °áÁ¦ - P_PurchaseItemBySeed
#endif
int QueryMakeGiftByCoupon(INT64 biCharacterDBID, bool bPCBang, const char *pszItemSNs, const char *pszSelectItemIDs, const char *pszSelectItemOptions, WCHAR *pCoupon, const char *pOrderKey, char *pIp, OUT INT64 &biPurchaseOrderID); // 3.ÄíÆùÀ¸·Î ¾ÆÀÌÅÛ °áÁ¦ - P_MakeGiftByCoupon
int QueryMakeGiftByQuest(INT64 biCharacterDBID, bool bPCBang, int nItemSN, const char *pszSelectItemIDs, const char *pszSelectItemOptions, int nQuestID, WCHAR *pMemo, int nLifeSpan, char *pIp, bool bNewFlag, OUT INT64 &biPurchaseOrderID); // 4.Äù½ºÆ® º¸»óÀ¸·Î ¼±¹° Áö±Þ - P_MakeGiftByQuest
int QueryMakeGiftByMission(INT64 biCharacterDBID, bool bPCBang, int nItemSN, const char *pszSelectItemIDs, const char *pszSelectItemOptions, int nMissionID, WCHAR *pMemo, int nLifeSpan, char *pIp, bool bNewFlag, OUT INT64 &biPurchaseOrderID); // 5.¹Ì¼Ç º¸»óÀ¸·Î ¼±¹° Áö±Þ - P_MakeGiftByMission
#ifdef PRE_ADD_LIMITED_CASHITEM
int QueryMakeGift(INT64 biCharacterDBID, bool bPCBang, int nItemSN, const char *pszSelectItemIDs, const char *pszSelectItemOptions, const char * pszLimitedQuantityMax, WCHAR *pMemo, int nLifeSpan, int nPayMethodCode, int iOrderKey, char *pIp, bool bNewFlag, OUT INT64 &biPurchaseOrderID); // 7.¼±¹° Áö±Þ(Äù½ºÆ®, ¹Ì¼Ç º¸»ó¿ë SP¸¦ ´ëüÇÒ ¼ö ÀÖ´Â ¹ü¿ë SP) - P_MakeGift
#else //#ifdef PRE_ADD_LIMITED_CASHITEM
int QueryMakeGift(INT64 biCharacterDBID, bool bPCBang, int nItemSN, const char *pszSelectItemIDs, const char *pszSelectItemOptions, WCHAR *pMemo, int nLifeSpan, int nPayMethodCode, int iOrderKey, char *pIp, bool bNewFlag, OUT INT64 &biPurchaseOrderID); // 7.¼±¹° Áö±Þ(Äù½ºÆ®, ¹Ì¼Ç º¸»ó¿ë SP¸¦ ´ëüÇÒ ¼ö ÀÖ´Â ¹ü¿ë SP) - P_MakeGift
#endif //#ifdef PRE_ADD_LIMITED_CASHITEM
int QueryAddGuildWarMakeGiftQueue(INT64 biCharacterDBID, int nItemSN, const char *pszSelectItemIDs, WCHAR *pMemo, int nLifeSpan, int nPayMethodCode, int nMatchTypeCode, char *pIp, bool bNewFlag); // ±æµåÀü º»¼± º¸»ó
int QueryAddGiftSendSchedule(const char *pszCharacterDBIDs, int nItemSN, const char *pszSelectItemIDs, WCHAR *pMemo, int nLifeSpan, int nPayMethodCode, char *pIp, bool bNewFlag); // ±æµåÀü º»¼± º¸»ó
int QueryModGiveFailFlag(INT64 biPurchaseOrderID, int nProductSN, int nItemID, bool bItemGiveFail);
int QueryModGiveFailFlag2(INT64 biPurchaseOrderDetailID, bool bItemGiveFail);
int QueryGetListGiveFailItem(INT64 biCharacterDBID, TAGetListGiveFailItem *pA);
int QueryGetCountNotReceivedGift(INT64 biCharacterDBID, OUT int &nGiftCount); // 1.¹ÞÁö ¾ÊÀº ¼±¹° °³¼ö Á¶È¸ - P_GetCountNotReceivedGift
int QueryGetListGiftBox(INT64 biCharacterDBID, OUT char &cCount, OUT TGiftInfo *GiftBoxList); // 2.¹ÞÀº ¼±¹° ¸ñ·Ï - P_GetListGiftBox
int QueryGetListItemOfGift(INT64 biPurchaseOrderID, OUT int &nItemSN, OUT int &nItemPrice, OUT std::vector<DBPacket::TItemIDOption> &VecItemList); // 3.¹ÞÀ» ¼±¹° ¸ñ·Ï Á¶È¸ - P_GetListItemOfGift
int QueryModGiftReceiveFlag(INT64 biPurchaseOrderID, OUT INT64 &biReplySenderCharacterDBID, OUT WCHAR *pReplyReceiverCharName, OUT INT64 &biGiftSenderCharacterDBID, OUT int &nPaidCashAmount); // 4.¹ÞÀº ¼±¹°À» ij½¬ Àκ¥Å丮·Î À̵¿ Ç¥½Ã - P_ModGiftReceiveFlag
#if defined(PRE_ADD_GIFT_RETURN)
int QueryModGiftRejectFlag(INT64 biPurchaseOrderID, TAGiftReturn* pGiftReturn); // 5.¼±¹° ¹Ý¼Û - P_ModGiftRejectFlag
#endif // #if defined(PRE_ADD_GIFT_RETURN)
int QueryModCharacterName(TQChangeCharacterName* pQ, TAChangeCharacterName* pA);
int QueryIncreaseCharacterMaxCount(UINT nAccountDBID, char cAddCount, char cLimitCount, char &cCharMaxCount); // P_IncreaseCharacterMaxCount
int QueryGetCharacterMaxCount(UINT nAccountDBID, char &cCharMaxCount); // P_GetCharacterMaxCount
int QueryModCharacterSlotCount(INT64 biCharacterDBID, char cAddCount, char &cCharMaxCount); // P_ModCharacterSlotCount
int QueryGetCharacterSlotCount(UINT nAccountDBID, int nWorldID, INT64 biCharacterDBID, char &cCharMaxCount); // P_GetCharacterSlotCount
#if defined(PRE_ADD_PETALTRADE)
int QueryPurchaseTradeItemByPetal(INT64 biCharacterDBID, int nPetalPrice);
#endif
#if defined(PRE_SPECIALBOX)
int QueryAddEventReward(TQAddEventReward *pQ, TAAddEventReward *pA); // À̺¥Æ® º¸»ó ÀÔ·Â - P_AddEventReward
int QueryGetCountEventReward(int nAccountDBID, INT64 biCharacterDBID, int &nEventTotalCount); // À̺¥Æ® º¸»ó °³¼ö Á¶È¸ - P_GetCountEventReward
int QueryGetListEventReward(TQGetListEventReward *pQ, TAGetListEventReward *pA); // À̺¥Æ® º¸»ó ¸ñ·Ï Á¶È¸ - P_GetListEventReward
int QueryGetListEventRewardItem(TQGetListEventRewardItem *pQ, TAGetListEventRewardItem *pA); // À̺¥Æ® º¸»ó ¾ÆÀÌÅÛ ¸ñ·Ï Á¶È¸ - P_GetListEventRewardItem
int QueryAddEventRewardReceiver(int nAccountDBID, INT64 biCharacterDBID, int nEventRewardID); // À̺¥Æ® º¸»óÀ» ¹ÞÀº ij¸¯ÅÍ ¸ñ·Ï ÀúÀå - P_AddEventRewardReceiver
#endif // #if defined(PRE_SPECIALBOX)
#ifdef PRE_ADD_DOORS
int QueryGetAuthenticationFlag(UINT nAccountDBID, bool &bFlag);
int QueryGetDoorsAuthentication(UINT nAccountDBID, char * pszAuthKey);
int QueryCancelDoorsAuthentication(UINT nAccountDBID);
#endif //#ifdef PRE_ADD_DOORS
int QueryModCharacterSortCode(UINT nAccountDBID, BYTE cCharacterSortCode);
int QueryGetCharacterSortCode(UINT nAccountDBID, BYTE &cCharacterSortCode);
#if defined(PRE_ADD_GAMEQUIT_REWARD)
int QueryModNewbieRewardFlag(UINT nAccountDBID, bool bRewardFlag);
#endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
#if defined(PRE_ADD_HEARTBEAT_TO_SQL)
int QueryHeartbeat();
#endif //#if defined(PRE_ADD_HEARTBEAT_TO_SQL)
#if defined(PRE_ADD_WORLD_EVENT)
int QueryEventList(TQEventList * pQ, TAEventList * pA);
#endif //#if defined(PRE_ADD_WORLD_EVENT)
#if defined( PRE_ADD_NEWCOMEBACK )
int QueryModComebackFlag(UINT nAccountDBID, bool bRewardComeback);
#endif
#if defined( PRE_WORLDCOMBINE_PVP )
int QueryUpdateWorldPvPRoom(TQUpdateWorldPvPRoom* pQ, TAUpdateWorldPvPRoom *pA);
#endif
int QueryGetAccountID(const char* uname);
int QueryCheckLogin(CSCheckLoginTW *pLogin);
};