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