diff --git a/server/imserver/player.h b/server/imserver/player.h index a2f76ac..84a642f 100644 --- a/server/imserver/player.h +++ b/server/imserver/player.h @@ -24,6 +24,10 @@ class Player int last_invite_time = 0; int data_version1 = 0; + long long user_value1 = 0; + long long user_value2 = 0; + long long user_value3 = 0; + public: void Init(); void UnInit(); diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 8bfd444..67c7816 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -45,6 +45,7 @@ void PlayerMgr::_CMLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg) GetHdrByAccountId(msg.account_id())) { cs::SMLogin respmsg; respmsg.set_errcode(1); + respmsg.set_errmsg("登录失败请重试"); WSListener::Instance()->SendToClient(hdr.socket_handle, 0, respmsg); return; } @@ -158,32 +159,33 @@ void PlayerMgr::AsyncLogin1(const cs::CMLogin& msg) cs::CMLogin* msg_copy = new cs::CMLogin(); *msg_copy = msg; a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(msg.account_id()); - DBEngine::Instance()->ExecAsyncScript(conn_info, - "INSERT INTO `user`(account_id, nickname, avatar_url," - " sex, friend_data, createtime, modifytime, registertime)" - "VALUES ('%s', '%s', '%s', %d, '', %d, %d, %d)" - "ON DUPLICATE KEY UPDATE nickname='%s', avatar_url='%s'," - " sex=%d, last_logintime=%d;", - { - msg.account_id(), - msg.nickname(), - msg.avatar_url(), - msg.sex(), - App::Instance()->nowtime, - App::Instance()->nowtime, - f8::ExtractRegisterTimeFromSessionId(msg.session_id()), - msg.nickname(), - msg.avatar_url(), - msg.sex(), - App::Instance()->nowtime - }, - a8::XParams() - .SetSender((void*)msg_copy), - on_ok, - on_error, - a8::openssl::Crc32((unsigned char*)msg.account_id().data(), - msg.account_id().size()) - ); + DBEngine::Instance()->ExecAsyncScript + (conn_info, + "INSERT INTO `user`(account_id, nickname, avatar_url," + " sex, friend_data, createtime, modifytime, registertime)" + "VALUES ('%s', '%s', '%s', %d, '', %d, %d, %d)" + "ON DUPLICATE KEY UPDATE nickname='%s', avatar_url='%s'," + " sex=%d, last_logintime=%d, data_version1=data_version1 + 1;", + { + msg.account_id(), + msg.nickname(), + msg.avatar_url(), + msg.sex(), + App::Instance()->nowtime, + App::Instance()->nowtime, + f8::ExtractRegisterTimeFromSessionId(msg.session_id()), + msg.nickname(), + msg.avatar_url(), + msg.sex(), + App::Instance()->nowtime + }, + a8::XParams() + .SetSender((void*)msg_copy), + on_ok, + on_error, + a8::openssl::Crc32((unsigned char*)msg.account_id().data(), + msg.account_id().size()) + ); } void PlayerMgr::AsyncLogin2(const cs::CMLogin& msg) @@ -207,7 +209,10 @@ void PlayerMgr::AsyncLogin2(const cs::CMLogin& msg) a8::XValue(data_set->at(0).at(3)), a8::XValue(data_set->at(0).at(4)), a8::XValue(data_set->at(0).at(6)), - a8::XValue(data_set->at(0).at(5)) + a8::XValue(data_set->at(0).at(5)), + a8::XValue(data_set->at(0).at(7)), + a8::XValue(data_set->at(0).at(8)), + a8::XValue(data_set->at(0).at(9)) ); } delete msg; @@ -227,20 +232,21 @@ void PlayerMgr::AsyncLogin2(const cs::CMLogin& msg) cs::CMLogin* msg_copy = new cs::CMLogin(); *msg_copy = msg; a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(msg.account_id()); - DBEngine::Instance()->ExecAsyncQuery(conn_info, - "SELECT account_id, nickname, avatar_url, sex, group_id, " - " data_version1, user_db " - "FROM `user` WHERE account_id='%s';", - { - msg.account_id(), - }, - a8::XParams() - .SetSender((void*)msg_copy), - on_ok, - on_error, - a8::openssl::Crc32((unsigned char*)msg.account_id().data(), - msg.account_id().size()) - ); + DBEngine::Instance()->ExecAsyncQuery + (conn_info, + "SELECT account_id, nickname, avatar_url, sex, group_id, " + " data_version1, friend_data, user_value1, user_value2, user_value3 " + "FROM `user` WHERE account_id='%s';", + { + msg.account_id(), + }, + a8::XParams() + .SetSender((void*)msg_copy), + on_ok, + on_error, + a8::openssl::Crc32((unsigned char*)msg.account_id().data(), + msg.account_id().size()) + ); } void PlayerMgr::AsyncLoginOnOk(const std::string& account_id, @@ -249,7 +255,10 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id, int sex, long long group_id, const std::string& friend_data, - int data_version1) + int data_version1, + long long user_value1, + long long user_value2, + long long user_value3) { f8::MsgHdr* hdr = GetHdrByAccountId(account_id); if (hdr) { @@ -270,6 +279,9 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id, hum->sex = sex; hum->group_id = group_id; hum->data_version1 = data_version1; + hum->user_value1 = user_value1; + hum->user_value2 = user_value2; + hum->user_value3 = user_value3; hum->Init(); { ss::MFUserDB user_db; diff --git a/server/imserver/playermgr.h b/server/imserver/playermgr.h index f44e886..c313eab 100644 --- a/server/imserver/playermgr.h +++ b/server/imserver/playermgr.h @@ -51,7 +51,10 @@ class PlayerMgr : public a8::Singleton int sex, long long group_id, const std::string& friend_data, - int data_version1); + int data_version1, + long long user_value1, + long long user_value2, + long long user_value3); void AsyncLoginOnError(const std::string& account_id, int step, int error_code, diff --git a/sql/relationdb_n.sql b/sql/relationdb_n.sql index e8340b1..f9d9eba 100644 --- a/sql/relationdb_n.sql +++ b/sql/relationdb_n.sql @@ -44,7 +44,10 @@ CREATE TABLE `user` ( `sex` int(11) NOT NULL DEFAULT '0' COMMENT 'sex', `group_id` bigint NOT NULL COMMENT 'group_id', `friend_data` mediumblob COMMENT '好友数据', - `data_version1` int(11) NOT NULL DEFAULT '0' COMMENT 'data_version1', + `data_version1` bigint NOT NULL DEFAULT '0' COMMENT 'data_version1', + `user_value1` bigint NOT NULL DEFAULT '0' COMMENT 'user_value1', + `user_value2` bigint NOT NULL DEFAULT '0' COMMENT 'user_value2', + `user_value3` bigint NOT NULL DEFAULT '0' COMMENT 'user_value3', `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', `registertime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',