1
This commit is contained in:
parent
d4ed7af836
commit
aa804c9371
@ -18,7 +18,6 @@ void Player::Init()
|
||||
);
|
||||
SyncLocToMasterServer();
|
||||
NotifyOnline();
|
||||
AsyncGetFriendList();
|
||||
}
|
||||
|
||||
void Player::UnInit()
|
||||
@ -28,25 +27,39 @@ void Player::UnInit()
|
||||
|
||||
void Player::Deserialize(const cs::MFUserDB& user_db)
|
||||
{
|
||||
|
||||
for (auto& friend_db : user_db.friends()) {
|
||||
Friend friendobj;
|
||||
friendobj.account_id = friend_db.account_id();
|
||||
friendobj.nickname = friend_db.nickname();
|
||||
friendobj.avatar_url = friend_db.avatar_url();
|
||||
friendobj.sex = friend_db.sex();
|
||||
friendobj.data_version1 = friend_db.data_version1();
|
||||
friendobj.group_id = friend_db.group_id();
|
||||
friendobj.crc32_code = a8::openssl::Crc32(
|
||||
(unsigned char*)account_id.data(),
|
||||
account_id.size()
|
||||
);;
|
||||
friend_hash_[friendobj.account_id] = friendobj;
|
||||
}
|
||||
}
|
||||
|
||||
void Player::Serialize(cs::MFUserDB& user_db)
|
||||
{
|
||||
|
||||
for (auto& pair : friend_hash_) {
|
||||
auto p = user_db.add_friends();
|
||||
p->set_account_id(pair.second.account_id);
|
||||
p->set_nickname(pair.second.nickname);
|
||||
p->set_avatar_url(pair.second.avatar_url);
|
||||
p->set_sex(pair.second.sex);
|
||||
p->set_data_version1(pair.second.data_version1);
|
||||
p->set_group_id(pair.second.group_id);
|
||||
}
|
||||
}
|
||||
|
||||
void Player::_CMFriendList(f8::MsgHdr& hdr, const cs::CMFriendList& msg)
|
||||
{
|
||||
cs::SMFriendList respmsg;
|
||||
if (friend_list_syncok_) {
|
||||
FillFriendList(respmsg.mutable_friend_list());
|
||||
} else {
|
||||
if (!reading_friends_list_) {
|
||||
AsyncGetFriendList();
|
||||
}
|
||||
respmsg.set_error_code(1);
|
||||
}
|
||||
SendMsg(respmsg);
|
||||
}
|
||||
|
||||
@ -175,10 +188,6 @@ void Player::NotifyOffline()
|
||||
|
||||
}
|
||||
|
||||
void Player::AsyncGetFriendList()
|
||||
{
|
||||
}
|
||||
|
||||
void Player::FillFriendList(::google::protobuf::RepeatedPtrField< ::cs::MFUserInfo >* friend_list)
|
||||
{
|
||||
for (auto& pair : friend_hash_) {
|
||||
@ -261,11 +270,17 @@ void Player::SaveToDB()
|
||||
DBEngine::Instance()->
|
||||
ExecAsyncScript(
|
||||
conn_info,
|
||||
"UPDATE `user` SET friend_data='%s', modifytime=%d "
|
||||
"UPDATE `user` SET friend_data='%s', modifytime=%d, "
|
||||
" nickname='%s', avatar_url='%s', sex=%d, group_id=%d, data_version1=%d "
|
||||
"WHERE account_id='%s';",
|
||||
{
|
||||
friend_data,
|
||||
App::Instance()->nowtime,
|
||||
nickname,
|
||||
avatar_url,
|
||||
sex,
|
||||
group_id,
|
||||
data_version1,
|
||||
account_id
|
||||
},
|
||||
a8::XParams(),
|
||||
|
@ -57,7 +57,6 @@ class Player
|
||||
void MarkDirty();
|
||||
|
||||
private:
|
||||
void AsyncGetFriendList();
|
||||
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);
|
||||
@ -68,6 +67,4 @@ private:
|
||||
timer_list* dirty_timer_ = nullptr;
|
||||
|
||||
std::map<std::string, Friend> friend_hash_;
|
||||
bool reading_friends_list_ = false;
|
||||
bool friend_list_syncok_ = false;
|
||||
};
|
||||
|
@ -19,6 +19,7 @@ struct Friend
|
||||
std::string avatar_url;
|
||||
int sex = 0;
|
||||
int online = 0;
|
||||
long long group_id = 0;
|
||||
|
||||
std::string server_host;
|
||||
int server_port;
|
||||
|
@ -39,14 +39,19 @@ message MFGroupDB
|
||||
repeated MFGroupMemberDB members = 1;
|
||||
}
|
||||
|
||||
message MFFriendDB1
|
||||
message MFFriendDB
|
||||
{
|
||||
|
||||
optional string account_id = 1;
|
||||
optional string nickname = 2;
|
||||
optional string avatar_url = 3;
|
||||
optional int32 sex = 4;
|
||||
optional int64 group_id = 5;
|
||||
optional int32 data_version1 = 6;
|
||||
}
|
||||
|
||||
message MFUserDB
|
||||
{
|
||||
|
||||
repeated MFGroupMemberDB friends = 1;
|
||||
}
|
||||
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user