#ifndef _RYL_ADMIN_MGR_DB_H_ #define _RYL_ADMIN_MGR_DB_H_ #include // Äõ¸® ¸ðÀ½ namespace QUERYZ { const char LoginInfo[] = "SELECT uid, strAdminID, strPasswd, strLevel, strName, strIP, CONVERT(varchar(11),dateRegit,102) FROM TblToolAdmin WHERE strAdminID = '%s'"; const char NewAdminAck[] = "SELECT strAdminID, strName, strIP, convert(varchar(11),dateRegit,102), strLevel FROM TblToolAdmin WHERE strAdminID='%s'"; const char LoginList[] = "SELECT LogID, CONVERT( varchar(20), Login, 120 ), CONVERT(varchar(20), Logout, 120 ), UseIP FROM TblLog WHERE UID=%d" ; const char DetailLog[] = "SELECT DetailLogID, CONVERT(varchar(20), UpdateDate, 120), UpdateType FROM TblDetailLog WHERE LogID=%d" ; const char ExitLog[] = "SELECT UseMsg FROM TblLog WHERE LogID = %d"; const char AdminList[] = "SELECT strAdminID, strName, strIP, CONVERT(varchar(11),dateRegit,102), strLevel FROM TblToolAdmin" ; const char InsertDetailLog[] = "INSERT INTO TblDetailLog(LogID, UpdateType, Before, After) VALUES(%d, %d, '%s', '%s')"; const char BeforeAfter[] = "SELECT Before, After FROM TblDetailLog WHERE DetailLogID=%d" ; const char GetLevel[] = "SELECT strLevel FROM TblToolAdmin WHERE strAdminID='%s'" ; const char GetIP[] = "SELECT strIP FROM TblToolAdmin WHERE strAdminID='%s'" ; const char GetPassword[] = "SELECT strPasswd FROM TblToolAdmin WHERE strAdminID='%s'" ; const char GetDelHistory[] = "SELECT intCID, intUID, NewServerGroupID, OldServerGroupID, CONVERT(varchar(20), dateInsertTime, 120), CONVERT(varchar(20), dateDeleteTime, 120), Name, CAST(Level as INT), Gold FROM TblCharDelHistory JOIN CharInfo ON TblCharDelHistory.intCID = CharInfo.CID WHERE %s=%d AND NewServerGroupID = %u"; const char GetGuildInfo[] = "SELECT A.nGuildID, CAST(OldServerGroupID AS INT), strGuildName, CAST(tnGuildLevel AS INT), nGuildFame, nGuildGold, CAST(tnNationType as INT) FROM TblGuildInfo A JOIN TblGuildMember B ON A.nGuildID =B.nGuildID %s GROUP BY A.nGuildID, CAST(OldServerGroupID AS INT), strGuildName, CAST(tnGuildLevel as INT), nGuildFame, nGuildGold, CAST(tnNationType as INT)"; const char GetFortInfo[] = "SELECT A.nCampID, A.nGuildID, B.strGuildName, A.nHP, A.tnZone, A.tnChannel, A.snObjectType, A.tnState, A.tnSubState, A.tnUpgradeStep," "CONVERT(varchar(20), RemainTime, 120), CONVERT(varchar(20), LastUseTime, 120), A.fPosX, A.fPosY, A.fPosZ, A.tnMaterial, A.tnSiegeCount, A.bRight " "FROM TblCampInfo A INNER JOIN TblGuildInfo B ON A.nGuildID = B.nGuildID %s" "GROUP BY A.nCampID, A.nGuildID, B.strGuildName, A.nHP, A.tnZone, A.tnChannel, A.snObjectType,A.tnState, A.tnSubState, A.tnUpgradeStep," "CONVERT(varchar(20), RemainTime, 120), CONVERT(varchar(20), LastUseTime, 120), A.bRight, A.fPosX, A.fPosY, A.fPosZ, A.tnMaterial, A.tnSiegeCount"; const char GetMiningCamp[] = "SELECT * FROM TblCampMineralInfo %s"; const char GetShopCamp[] = "SELECT * FROM TblCampShopInfo %s"; const char GetCastleInfo[] = "SELECT * FROM TblCastleInfo %s"; const char GetCastleCreatureInfo[] = "SELECT nCreatureID, nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, " "CONVERT(varchar(20), RemainTime, 120), CONVERT(varchar(20), LastUseTime, 120), fPosX, fPosY, fPosZ FROM TblCastleCreatureInfo %s"; const char GetGuildMemberList[] = "SELECT nGuildID, nCID, nPosition, nPositionInGuild, CONVERT(varchar(20), tLeaveGuildTime, 120), Name, CAST(Level as INT), Fame, Class, Gold FROM TblGuildMember JOIN CharInfo ON TblGuildMember.nCID = CharInfo.CID WHERE nGuildID = %s"; const char GetGuildRestoreData[] = "SELECT nGuildID, strGuildName, nGuildGold, CONVERT(varchar(20), tDeleteTime, 120) FROM TblGuildRestoreData"; // edith 2009.08.14 °ü½ÉÀ¯Àú ¹ö±×¼öÁ¤ (ROW_Activity DB»ç¿ë) const char GetUserBillingLog[] = "SELECT strClientid, UID, CAST(tinyServerID AS INT), CONVERT(VARCHAR(20), FirstLoginTime, 120), CONVERT(VARCHAR(20), LogoutTime, 120), CAST(strIP AS VARCHAR(16)) FROM TblCurrentUser WHERE %s ORDER BY FirstLoginTime"; // const char GetUserBillingLog[] = "SELECT strClientid, UID, CAST(tinyServerID AS INT), CONVERT(VARCHAR(20), FirstLoginTime, 120), CONVERT(VARCHAR(20), LogoutTime, 120), CAST(strIP AS VARCHAR(16)) FROM TblCurrentUser_Log WHERE %s ORDER BY FirstLoginTime"; }; // ´Ü¼ø ÂüÁ¶¿ë namespace PktAdminMgr { struct PktNewAdmin; struct PktUpdateLevel; struct PktUpdateIP; struct PktUpdatePasswd; struct PktAddBlockUser; struct PktDelBlockUser; struct PktInterestedUser; struct PktGMLogMsg; }; /*! \class CDBAdminTool ¿î¿µÅø µ¥ÀÌÅÍ º£À̽º */ class CDBAdminTool : public CDBComponent { public: #pragma pack(1) // °ü¸®ÀÚ ¾ÆÀÌÅÛ Ã¢°íÁ¤º¸ struct StoreInfo { enum TYPE { MAX_OWNER = 20, MAX_ITEM_NAME = 32 }; unsigned char cServer; unsigned char szOwner[MAX_OWNER]; unsigned char szItemName[MAX_ITEM_NAME]; }; // °ü¸®ÀÚ ¾ÆÀÌÅÛ Ã¢°íÁ¤º¸ struct ItemInfo { enum TYPE { MAX_ITEM_ATTRIB = 90, }; unsigned long dwLength; char ItemAttrib[MAX_ITEM_ATTRIB]; }; #pragma pack() public: static CDBAdminTool& GetInstance(); bool ConnectAdminToolDB(); // SQL¼­¹ö Á¢¼Ó BYTE Login(char* szAccount, char* szPassword); // ·Î±×ÀÎ BYTE CheckIP(char* AdminID, char* szIP); // ¾ÆÀÌÇÇ Ã¼Å© bool AccountCheck(char* AdminID); // Áߺ¹¿©ºÎ °Ë»ç BYTE NewAdmin(PktAdminMgr::PktNewAdmin* NewAdmin); // »õ·Î¿î °èÁ¤ »ý¼º bool DelAdmin(char* AdminID); // °èÁ¤ »èÁ¦ bool UpdateLevel(PktAdminMgr::PktUpdateLevel* UpdateLev); // °èÁ¤ µî±Þ º¯°æ bool UpdateIP(PktAdminMgr::PktUpdateIP* UpdateIP); // °èÁ¤ Á¢¼Ó IPº¯°æ bool UpdatePasswd(PktAdminMgr::PktUpdatePasswd* UpdatePwd); // °èÁ¤ ÆÐ½º¿öµå º¯°æ bool GetDate(char* DateTime); // ½Ã°£À» °¡Á®¿Â´Ù bool StartupLog(unsigned int UID, char* UseIP); // ·Î±×ÀÎÇÔ°ú µ¿½Ã¿¡ È£Ãâ. ±âº» ¼ÂÆÃ bool EndLog(unsigned int UID); // ·Î±×¾Æ¿ô Á¤º¸ ±â·Ï int GetMyUID(char* szAccount); // ÇØ´ç°èÁ¤ÀÇ UID¸¦ °¡Á®¿Â´Ù int GetNowLogID(unsigned int UID); // ÇöÀç »ç¿ëÁßÀÎ TblLogÀÇ LogID¸¦ °¡Á®¿Â´Ù bool UpdateLogoutDate(int LogID, char* szDate); // ·Î±×¾Æ¿ôÇÑ ³¯Â¥¿Í ½Ã°£ bool UpdateExitLog(unsigned int LogID, char* szExitLog); // »ç¿ë»çÀ¯ ¾÷µ¥ÀÌÆ® bool UpdateZoneList(unsigned int UID, char* In_Data); // Á¸ Á¤º¸ ÀúÀå bool GetZoneList(unsigned int UID, char* Out_Data); // Á¸ Á¤º¸ °¡Á®¿À±â // ºí·° bool AddBlockUser(PktAdminMgr::PktAddBlockUser* lpBlock, char* lpAdminName, char* szClientID); // ºí·° bool DelBlockUser(PktAdminMgr::PktDelBlockUser* lpDelBlock); // ºí·° ÇØÁ¦ // GM ·Î±× ¸Þ¼¼Áö ³²±â±â bool IsExistLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg); bool InsertGMLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg, char* szAdminID); bool UpdateGMLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg, char* szAdminID); bool DeleteGMLogMsg(PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg); private: CDBAdminTool() { ;} virtual ~CDBAdminTool() { ;} char m_szQry[MAX_QUERY_LENGTH]; }; #endif