1
This commit is contained in:
parent
7f9bc2b4f5
commit
d4ed7af836
@ -26,6 +26,16 @@ void Player::UnInit()
|
||||
timer_attacher.ClearTimerList();
|
||||
}
|
||||
|
||||
void Player::Deserialize(const cs::MFUserDB& user_db)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Player::Serialize(cs::MFUserDB& user_db)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Player::_CMFriendList(f8::MsgHdr& hdr, const cs::CMFriendList& msg)
|
||||
{
|
||||
cs::SMFriendList respmsg;
|
||||
@ -229,17 +239,12 @@ void Player::MarkDirty()
|
||||
}
|
||||
}
|
||||
|
||||
void Player::FillFriendDB(cs::MFFriendDB& friend_db)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Player::SaveToDB()
|
||||
{
|
||||
cs::MFFriendDB friend_db;
|
||||
FillFriendDB(friend_db);
|
||||
cs::MFUserDB user_db;
|
||||
Serialize(user_db);
|
||||
std::string friend_data;
|
||||
friend_db.SerializeToString(&friend_data);
|
||||
user_db.SerializeToString(&friend_data);
|
||||
|
||||
auto on_ok =
|
||||
[] (a8::XParams& param, const f8::DataSet* data_set)
|
||||
@ -256,17 +261,12 @@ void Player::SaveToDB()
|
||||
DBEngine::Instance()->
|
||||
ExecAsyncScript(
|
||||
conn_info,
|
||||
"INSERT `friend`(account_id, friend_data, createtime, modifytime) "
|
||||
"VALUES('%s', '%s', %d, %d) "
|
||||
"ON DUPLICATE KEY UPDATE friend_data='%s', modifytime=%d; ",
|
||||
"UPDATE `user` SET friend_data='%s', modifytime=%d "
|
||||
"WHERE account_id='%s';",
|
||||
{
|
||||
account_id,
|
||||
friend_data,
|
||||
App::Instance()->nowtime,
|
||||
App::Instance()->nowtime,
|
||||
|
||||
friend_data,
|
||||
App::Instance()->nowtime
|
||||
account_id
|
||||
},
|
||||
a8::XParams(),
|
||||
on_ok,
|
||||
|
@ -28,6 +28,9 @@ class Player
|
||||
void Init();
|
||||
void UnInit();
|
||||
|
||||
void Deserialize(const cs::MFUserDB& friend_db);
|
||||
void Serialize(cs::MFUserDB& friend_db);
|
||||
|
||||
template <typename T>
|
||||
void SendMsg(T& msg)
|
||||
{
|
||||
@ -58,7 +61,6 @@ private:
|
||||
void FillFriendList(::google::protobuf::RepeatedPtrField< ::cs::MFUserInfo >* friend_list);
|
||||
void FillIMMsgConext(f8::MsgHdr& hdr, ss::MFIMMsgConext* conext);
|
||||
void ForwardGroupCMMsg(f8::MsgHdr& hdr, long long hash_code);
|
||||
void FillFriendDB(cs::MFFriendDB& friend_db);
|
||||
void SaveToDB();
|
||||
|
||||
private:
|
||||
|
@ -160,8 +160,8 @@ void PlayerMgr::AsyncLogin1(const cs::CMLogin& 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, createtime, modifytime, registertime)"
|
||||
"VALUES ('%s', '%s', '%s', %d, %d, %d, %d)"
|
||||
" 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;",
|
||||
{
|
||||
@ -206,6 +206,7 @@ void PlayerMgr::AsyncLogin2(const cs::CMLogin& msg)
|
||||
data_set->at(0).at(2),
|
||||
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))
|
||||
);
|
||||
}
|
||||
@ -228,7 +229,7 @@ void PlayerMgr::AsyncLogin2(const cs::CMLogin& 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 "
|
||||
" data_version1, user_db "
|
||||
"FROM `user` WHERE account_id='%s';",
|
||||
{
|
||||
msg.account_id(),
|
||||
@ -247,6 +248,7 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id,
|
||||
const std::string& avatar_url,
|
||||
int sex,
|
||||
long long group_id,
|
||||
const std::string& friend_data,
|
||||
int data_version1)
|
||||
{
|
||||
f8::MsgHdr* hdr = GetHdrByAccountId(account_id);
|
||||
@ -269,6 +271,11 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id,
|
||||
hum->group_id = group_id;
|
||||
hum->data_version1 = data_version1;
|
||||
hum->Init();
|
||||
{
|
||||
cs::MFUserDB user_db;
|
||||
user_db.ParseFromString(friend_data);
|
||||
hum->Deserialize(user_db);
|
||||
}
|
||||
socket_hash_[hdr->socket_handle] = hum;
|
||||
accountid_hash_[account_id] = hum;
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ class PlayerMgr : public a8::Singleton<PlayerMgr>
|
||||
const std::string& avatar_url,
|
||||
int sex,
|
||||
long long group_id,
|
||||
const std::string& friend_data,
|
||||
int data_version1);
|
||||
void AsyncLoginOnError(const std::string& account_id,
|
||||
int step,
|
||||
|
@ -39,7 +39,12 @@ message MFGroupDB
|
||||
repeated MFGroupMemberDB members = 1;
|
||||
}
|
||||
|
||||
message MFFriendDB
|
||||
message MFFriendDB1
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
message MFUserDB
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ CREATE TABLE `user` (
|
||||
`avatar_url` varchar(256) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '',
|
||||
`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',
|
||||
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
@ -76,24 +77,6 @@ CREATE TABLE `group` (
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
-- Table structure for table `friend`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `friend`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `friend` (
|
||||
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`account_id` varchar(60) CHARACTER SET utf8 NOT NULL COMMENT 'account_id',
|
||||
`friend_data` mediumblob COMMENT '群数据',
|
||||
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
PRIMARY KEY (`idx`),
|
||||
KEY `account_id` (`account_id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
-- Table structure for table `friend_apply`
|
||||
--
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user