This commit is contained in:
aozhiwei 2020-06-12 16:24:21 +08:00
parent 76fdb020f8
commit ea6cfe8bdb
4 changed files with 66 additions and 44 deletions

View File

@ -24,6 +24,10 @@ class Player
int last_invite_time = 0; int last_invite_time = 0;
int data_version1 = 0; int data_version1 = 0;
long long user_value1 = 0;
long long user_value2 = 0;
long long user_value3 = 0;
public: public:
void Init(); void Init();
void UnInit(); void UnInit();

View File

@ -45,6 +45,7 @@ void PlayerMgr::_CMLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg)
GetHdrByAccountId(msg.account_id())) { GetHdrByAccountId(msg.account_id())) {
cs::SMLogin respmsg; cs::SMLogin respmsg;
respmsg.set_errcode(1); respmsg.set_errcode(1);
respmsg.set_errmsg("登录失败请重试");
WSListener::Instance()->SendToClient(hdr.socket_handle, 0, respmsg); WSListener::Instance()->SendToClient(hdr.socket_handle, 0, respmsg);
return; return;
} }
@ -158,32 +159,33 @@ void PlayerMgr::AsyncLogin1(const cs::CMLogin& msg)
cs::CMLogin* msg_copy = new cs::CMLogin(); cs::CMLogin* msg_copy = new cs::CMLogin();
*msg_copy = msg; *msg_copy = msg;
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(msg.account_id()); a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(msg.account_id());
DBEngine::Instance()->ExecAsyncScript(conn_info, DBEngine::Instance()->ExecAsyncScript
"INSERT INTO `user`(account_id, nickname, avatar_url," (conn_info,
" sex, friend_data, createtime, modifytime, registertime)" "INSERT INTO `user`(account_id, nickname, avatar_url,"
"VALUES ('%s', '%s', '%s', %d, '', %d, %d, %d)" " sex, friend_data, createtime, modifytime, registertime)"
"ON DUPLICATE KEY UPDATE nickname='%s', avatar_url='%s'," "VALUES ('%s', '%s', '%s', %d, '', %d, %d, %d)"
" sex=%d, last_logintime=%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.account_id(),
msg.avatar_url(), msg.nickname(),
msg.sex(), msg.avatar_url(),
App::Instance()->nowtime, msg.sex(),
App::Instance()->nowtime, App::Instance()->nowtime,
f8::ExtractRegisterTimeFromSessionId(msg.session_id()), App::Instance()->nowtime,
msg.nickname(), f8::ExtractRegisterTimeFromSessionId(msg.session_id()),
msg.avatar_url(), msg.nickname(),
msg.sex(), msg.avatar_url(),
App::Instance()->nowtime msg.sex(),
}, App::Instance()->nowtime
a8::XParams() },
.SetSender((void*)msg_copy), a8::XParams()
on_ok, .SetSender((void*)msg_copy),
on_error, on_ok,
a8::openssl::Crc32((unsigned char*)msg.account_id().data(), on_error,
msg.account_id().size()) a8::openssl::Crc32((unsigned char*)msg.account_id().data(),
); msg.account_id().size())
);
} }
void PlayerMgr::AsyncLogin2(const cs::CMLogin& msg) 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(3)),
a8::XValue(data_set->at(0).at(4)), a8::XValue(data_set->at(0).at(4)),
a8::XValue(data_set->at(0).at(6)), 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; delete msg;
@ -227,20 +232,21 @@ void PlayerMgr::AsyncLogin2(const cs::CMLogin& msg)
cs::CMLogin* msg_copy = new cs::CMLogin(); cs::CMLogin* msg_copy = new cs::CMLogin();
*msg_copy = msg; *msg_copy = msg;
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(msg.account_id()); a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(msg.account_id());
DBEngine::Instance()->ExecAsyncQuery(conn_info, DBEngine::Instance()->ExecAsyncQuery
"SELECT account_id, nickname, avatar_url, sex, group_id, " (conn_info,
" data_version1, user_db " "SELECT account_id, nickname, avatar_url, sex, group_id, "
"FROM `user` WHERE account_id='%s';", " data_version1, friend_data, user_value1, user_value2, user_value3 "
{ "FROM `user` WHERE account_id='%s';",
msg.account_id(), {
}, msg.account_id(),
a8::XParams() },
.SetSender((void*)msg_copy), a8::XParams()
on_ok, .SetSender((void*)msg_copy),
on_error, on_ok,
a8::openssl::Crc32((unsigned char*)msg.account_id().data(), on_error,
msg.account_id().size()) a8::openssl::Crc32((unsigned char*)msg.account_id().data(),
); msg.account_id().size())
);
} }
void PlayerMgr::AsyncLoginOnOk(const std::string& account_id, void PlayerMgr::AsyncLoginOnOk(const std::string& account_id,
@ -249,7 +255,10 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id,
int sex, int sex,
long long group_id, long long group_id,
const std::string& friend_data, 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); f8::MsgHdr* hdr = GetHdrByAccountId(account_id);
if (hdr) { if (hdr) {
@ -270,6 +279,9 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id,
hum->sex = sex; hum->sex = sex;
hum->group_id = group_id; hum->group_id = group_id;
hum->data_version1 = data_version1; hum->data_version1 = data_version1;
hum->user_value1 = user_value1;
hum->user_value2 = user_value2;
hum->user_value3 = user_value3;
hum->Init(); hum->Init();
{ {
ss::MFUserDB user_db; ss::MFUserDB user_db;

View File

@ -51,7 +51,10 @@ class PlayerMgr : public a8::Singleton<PlayerMgr>
int sex, int sex,
long long group_id, long long group_id,
const std::string& friend_data, 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, void AsyncLoginOnError(const std::string& account_id,
int step, int step,
int error_code, int error_code,

View File

@ -44,7 +44,10 @@ CREATE TABLE `user` (
`sex` int(11) NOT NULL DEFAULT '0' COMMENT 'sex', `sex` int(11) NOT NULL DEFAULT '0' COMMENT 'sex',
`group_id` bigint NOT NULL COMMENT 'group_id', `group_id` bigint NOT NULL COMMENT 'group_id',
`friend_data` mediumblob COMMENT '好友数据', `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 '创建时间', `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
`registertime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `registertime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',