Files
mir_server/server/LoggerServer/LoggerServerSocket.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

295 lines
12 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
class CCustomServerSocket;
class CSQLConenction;
class CSrvConfig;
extern std::string g_ConfigPath;
class CLoggerServerSocket:
public CCustomServerSocket
{
public:
typedef CCustomServerSocket ServerInherited ;
const static int CREATE_TABLE_INTERVAL = 86400000; //1天调用一次
//重载父类的函数
virtual CCustomServerClientSocket* CreateClientSocket(SOCKET nSocket, PSOCKADDR_IN pAddrIn);
inline CSQLConenction* GetSqlConnection() { return &Db;}
//发送给逻辑服开启聊天发送
void SendOpenChatLogFlag(int nServerIndex,int nFlag);
void AddServerClient(CLoggerClientSocket* pClient,int Flag = 0);
//发送禁言消息
void SendShutUpMsg(int nServerIndex,int nType,char* sName,int nTime);
public://构造函数和析构函数
CLoggerServerSocket(void);
~CLoggerServerSocket(void);
protected:
//提供用于子类进行覆盖的开启服务的函数如果函数返回FALSE则启动将会失败
//函数将在进入监听后,启动接受连接和连接处理线程前调用
virtual BOOL DoStartup();
//提供用于族类进行覆盖的停止服务的函数
//函数将在停止接受连接以及处理数据线程并关闭监听套接字后调用
virtual VOID DoStop();
VOID CreateTables();
//每次调用
VOID SingleRun();
BOOL ConnectSQL();
private:
//设置数据库的相关参数
VOID SetDbConnection();
/*
* 执行插入数据库操作,注意:如果执行出错,需要记录到文件日志里
* szSql:sql语句
*/
BOOL ExecSql(const char* szSql);
public:
CSrvConfig Config;
protected:
CSQLConenction Db;
TICKCOUNT m_dwReconnectSQLTick; //当前的tickcount
volatile LONG m_boCreateTableStoped; //是否停止工作线程
HANDLE m_hCTThread;
UINT64 m_nextCreateTtableTick; //上一次的调用的tickCount
CQueueList<CLoggerClientSocket*> m_LogClientList;//客户端列表
};
/************** SQL语句 **************************/
// static LPCSTR m_szLoginLogSql =
// _T("insert into log_login_%d%02d%02d(logdate,logid,userid,account,serverindex,loginip,servertype,logindescr,spid,level,yb,onlinetime) values(FROM_UNIXTIME(%d),%d,%u,'%s',%d,'%s',%d,'%s','%s',%d,%d,%u);");
static LPCSTR m_szLoginLogSql =
_T("insert into log_login_%d%02d%02d(logdate,logid,userid,account,serverindex,loginip,servertype,logindescr,spid,level,yb,onlinetime) values(now(),%d,%u,'%s',%d,'%s',%d,'%s','%s',%d,%d,%u);");
// static LPCSTR m_szLoginLogSql =
// _T("insert into log_login_%d%02d%02d(logdate,logid,userid,account,serverindex,loginip,servertype,logindescr,spid,level,yb,onlinetime) values('%s',%d,%u,'%s',%d,'%s',%d,'%s','%s',%d,%d,%u);");
static LPCSTR m_szConsumeLogSql =
_T("insert into log_consume_%d%02d%02d(logdate,logid,userid,account,serverindex,charname,moneytype,consumecount,paymentcount,consumedescr,reser1,balance,spid) values(now(),%d,%u,'%s',%d,'%s',%d,%d,%d,'%s',%d,%d,'%s');");
// static LPCSTR m_szConsumeLogSql =
// _T("insert into log_consume_%d%02d%02d(logdate,logid,userid,account,serverindex,charname,moneytype,consumecount,paymentcount,consumedescr,reser1,balance,spid ) values('%s',%d,%u,'%s',%d,'%s',%d,%d,%d,'%s',%d,%d,'%s');");
static LPCSTR m_szOnlineLogSql =
_T("insert into log_onlinecount_%d%02d%02d(logdate,serverindex,onlinecount,spid) values(now(),%d,%d,'%s');");
// static LPCSTR m_szOnlineLogSql =
// _T("insert into log_onlinecount_%d%02d%02d(logdate,serverindex,onlinecount,spid) values('%s',%d,%d,'%s');");
static LPCSTR m_szDealLogSql =
_T("insert into log_deal_%d%02d%02d(serverindex,logid,miniTime,inActorId,outActorId,item_id,item_num,money_type,money_num,dues,spid) values(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,'%s');");
static LPCSTR m_szItemLogSql =
_T("insert into log_item_%d%02d%02d(logdate,logid,userid,account,serverindex,charname,type,itemid,itemcount,consumedescr,spid) values(now(),%d,%u,'%s',%d,'%s',%d,%d,%d,'%s','%s');");
// static LPCSTR m_szItemLogSql =
// _T("insert into log_item_%d%02d%02d(logdate,logid,userid,account,serverindex,charname,type,itemid,itemcount,consumedescr,spid ) values('%s',%d,%u,'%s',%d,'%s',%d,%d,%d,'%s','%s');");
/*
static LPCSTR m_szSuggestLogSql =
_T("insert into log_suggest_%d%02d%02d(logdate,account,serverindex,charname,suggesttype,titlestr,sugguststr,state) values(now(),'%s',%d,'%s',%d,'%s','%s',%d);");
*/
static LPCSTR m_szdropLogSql =
_T("insert into log_drop_%d%02d%02d(logdate,userid,account,serverindex,charname,monname,scenename,itemname,count,time,posx,posy) values(now(),%u,'%s',%d,'%s','%s','%s','%s',%d,%d,%d,%d);");
static LPCSTR m_szAtvLogSql =
_T("insert into log_joinatv_%d%02d%02d(logdate,userid,account,serverindex,charname,atvid,time,nindex) values(now(),%u,'%s',%d,'%s',%d,%d,%d);");
//建表语句
static LPCSTR m_szCreateLogin = "create table if not exists `log_login_%d%02d%02d` ( "
"`id` bigint(20) NOT NULL AUTO_INCREMENT,"
"`logdate` datetime not null,"
"`logid` int(10) not null,"
"`userid` int(10) unsigned default null,"
"`account` varchar(80) default null,"
"`serverindex` int(10) default null,"
"`loginip` varchar(20) default null,"
"`servertype` int(10) default null,"
"`logindescr` varchar(32) default null,"
"`level` int(10) default null,"
"`yb` int(10) default null,"
"`onlinetime` int(10) unsigned default null,"
"`spid` varchar(32) default null, "
"`oldsrvid` int(10) unsigned DEFAULT '0',"
"`arg1` int(10) unsigned DEFAULT '0',"
"`arg2` int(10) unsigned DEFAULT '0',"
"`arg3` int(10) unsigned DEFAULT '0',"
"`arg4` int(10) unsigned DEFAULT '0',"
"PRIMARY KEY (`id`),"
"KEY `logid` (`logid`),"
"KEY `userid` (`userid`),"
"KEY `serverindex` (`serverindex`)"
") engine=myisam default charset=utf8;";
static LPCSTR m_szCreateOnline =
"create table if not exists `log_onlinecount_%d%02d%02d` ( "
"`id` bigint(20) NOT NULL AUTO_INCREMENT,"
"`logdate` datetime not null,"
"`serverindex` int(10) default null,"
"`onlinecount` int(10) default null,"
"`spid` varchar(32) default null, "
"`oldsrvid` int(10) unsigned DEFAULT '0',"
"`arg1` int(10) unsigned DEFAULT '0',"
"`arg2` int(10) unsigned DEFAULT '0',"
"`arg3` int(10) unsigned DEFAULT '0',"
"`arg4` int(10) unsigned DEFAULT '0',"
"PRIMARY KEY (`id`)"
") engine=myisam default charset=utf8;";
static LPCSTR m_szCreateConsume =
"create table if not exists `log_consume_%d%02d%02d` ("
"`id` bigint(20) NOT NULL AUTO_INCREMENT,"
"`logdate` datetime not null,"
"`logid` int(10) not null,"
"`userid` int(10) unsigned default null,"
"`account` varchar(80) default null,"
"`serverindex` int(10) default null,"
"`charname` varchar(32) default null,"
"`moneytype` tinyint(32) default 3,"
"`consumecount` int(10) default null," //兼容已有的后台查询sql,保留该字段
"`paymentcount` int(10) default null,"
"`consumedescr` varchar(32) character set utf8 collate utf8_bin default null,"
"`reser1` int(10) default null," //兼容已有的后台查询sql,保留该字段不改名
"`balance` int(10) default null," //余额字段
"`spid` varchar(32) default null, "
"`oldsrvid` int(10) unsigned DEFAULT '0',"
"`arg1` int(10) unsigned DEFAULT '0',"
"`arg2` int(10) unsigned DEFAULT '0',"
"`arg3` int(10) unsigned DEFAULT '0',"
"`arg4` int(10) unsigned DEFAULT '0',"
"PRIMARY KEY (`id`),"
"INDEX `logdate` (`logdate` ASC),"
"KEY `logid` (`logid`),"
"KEY `userid` (`userid`),"
"KEY `serverindex` (`serverindex`)"
") engine=myisam default charset=utf8;";
static LPCSTR m_szCreateDeal =
"create table if not exists `log_deal_%d%02d%02d` ("
"`id` bigint(20) NOT NULL AUTO_INCREMENT,"
"`serverindex` int(10) default null,"
"`logid` int(10) not null,"
"`miniTime` int(10) not null,"
"`inActorId` int(10) unsigned default null,"
"`outActorId` int(10) unsigned default null,"
"`item_id` int(40) NOT NULL,"
"`item_num` int(8) NOT NULL,"
"`money_type` tinyint(8) NOT NULL,"
"`money_num` int(8) NOT NULL,"
"`dues` int(8) NOT NULL,"
"`spid` varchar(32) default null, "
"`oldsrvid` int(10) unsigned DEFAULT '0',"
"`arg1` int(10) unsigned DEFAULT '0',"
"`arg2` int(10) unsigned DEFAULT '0',"
"`arg3` int(10) unsigned DEFAULT '0',"
"`arg4` int(10) unsigned DEFAULT '0',"
"PRIMARY KEY (`id`)"
") engine=myisam default charset=utf8;";
static LPCSTR m_szCreateItem =
"create table if not exists `log_item_%d%02d%02d` ("
"`id` bigint(20) NOT NULL AUTO_INCREMENT,"
"`logdate` datetime not null,"
"`logid` int(10) not null,"
"`userid` int(10) unsigned default null,"
"`account` varchar(80) default null,"
"`serverindex` int(10) default null,"
"`charname` varchar(32) default null,"
"`type` tinyint(32) default 3,"
"`itemid` int(10) default null," //兼容已有的后台查询sql,保留该字段
"`itemcount` int(10) default null,"
"`consumedescr` varchar(32) character set utf8 collate utf8_bin default null,"
"`spid` varchar(32) default null, "
"`oldsrvid` int(10) unsigned DEFAULT '0',"
"`arg1` int(10) unsigned DEFAULT '0',"
"`arg2` int(10) unsigned DEFAULT '0',"
"`arg3` int(10) unsigned DEFAULT '0',"
"`arg4` int(10) unsigned DEFAULT '0',"
"PRIMARY KEY (`id`),"
"INDEX `logdate` (`logdate` ASC)"
") engine=myisam default charset=utf8;";
/*
//玩家的建议,发言,这里
//suggestType 1表示是提交bug,2表示投诉3表示游戏建议4表示其他5表示聊天
//
static LPCSTR m_szCreateSuggest=
"create table if not exists `log_suggest_%d%02d%02d` ("
"`logdate` datetime not null,"
"`account` varchar(80) default null,"
"`serverindex` int(10) default 0,"
"`state` int(10) default 0,"
"`gmcomment` varchar(128) character set utf8 collate utf8_bin default null,"
"`charname` varchar(32) default null,"
"`suggesttype` int(10) default null,"
"`titlestr` varchar(128) character set utf8 collate utf8_bin default null,"
"`sugguststr` varchar(512) character set utf8 collate utf8_bin default null"
") engine=myisam default charset=utf8;";
*/
static LPCSTR m_szCreateDrop =
"create table if not exists `log_drop_%d%02d%02d` ("
"`id` bigint(20) NOT NULL AUTO_INCREMENT,"
"`logdate` datetime not null,"
"`userid` int(10) unsigned default null,"
"`account` varchar(80) default null,"
"`serverindex` int(10) default null,"
"`charname` varchar(32) default null,"
"`monname` varchar(80) default null,"
"`scenename` varchar(80) default null,"
"`itemname` varchar(80) default null,"
"`count` int(10) default null," //
"`time` int(10) default null,"
"`posx` int(10) default null," //
"`posy` int(10) default null," //
"`oldsrvid` int(10) unsigned DEFAULT '0',"
"`arg1` int(10) unsigned DEFAULT '0',"
"`arg2` int(10) unsigned DEFAULT '0',"
"`arg3` int(10) unsigned DEFAULT '0',"
"`arg4` int(10) unsigned DEFAULT '0',"
"PRIMARY KEY (`id`),"
"INDEX `logdate` (`logdate` ASC),"
"KEY `userid` (`userid`),"
"KEY `serverindex` (`serverindex`)"
") engine=myisam default charset=utf8;";
static LPCSTR m_szCreateJoinAtv =
"create table if not exists `log_joinatv_%d%02d%02d` ("
"`id` bigint(20) NOT NULL AUTO_INCREMENT,"
"`logdate` datetime not null,"
"`userid` int(10) unsigned default null,"
"`account` varchar(80) default null,"
"`serverindex` int(10) default null,"
"`charname` varchar(32) default null,"
"`atvid` int(10) default null," //
"`time` int(10) default null,"
"`nindex` int(10) default null," //
"`oldsrvid` int(10) unsigned DEFAULT '0',"
"`arg1` int(10) unsigned DEFAULT '0',"
"`arg2` int(10) unsigned DEFAULT '0',"
"`arg3` int(10) unsigned DEFAULT '0',"
"`arg4` int(10) unsigned DEFAULT '0',"
"PRIMARY KEY (`id`),"
"INDEX `logdate` (`logdate` ASC),"
"KEY `userid` (`userid`),"
"KEY `serverindex` (`serverindex`),"
"KEY `atvid` (`atvid`)"
") engine=myisam default charset=utf8;";