Files
Client/Server/AdminTool/AdminToolLibrary/dbcomponent/Ryl_AdminMgrDB.h
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

129 lines
6.9 KiB
C++

#ifndef _RYL_ADMIN_MGR_DB_H_
#define _RYL_ADMIN_MGR_DB_H_
#include <RylServerLibrary/DB/DBComponent.h>
// 쿼리 모음
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