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 data_version1 = 0;
long long user_value1 = 0;
long long user_value2 = 0;
long long user_value3 = 0;
public:
void Init();
void UnInit();

View File

@ -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;

View File

@ -51,7 +51,10 @@ class PlayerMgr : public a8::Singleton<PlayerMgr>
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,

View File

@ -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 '创建时间',