This commit is contained in:
aozhiwei 2020-05-14 11:00:23 +08:00
parent aa804c9371
commit bf3f1618ae
6 changed files with 96 additions and 23 deletions

View File

@ -35,4 +35,6 @@ enum NetHandler_e
const char* const PROJ_NAME_FMT = "friend_imserver";
const char* const PROJ_ROOT_FMT = "/data/logs/%s";
const char* const EVENT_FRIEND_DELETE = "friend.delete";
const int MAX_INSTANCE_ID = 1023;

View File

@ -48,7 +48,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_CMLogin);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendList);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendInvite);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendApply);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendIgnore);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendDelete);

View File

@ -33,8 +33,8 @@ void Player::Deserialize(const cs::MFUserDB& user_db)
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.data_version1 = friend_db.data_version1();
friendobj.crc32_code = a8::openssl::Crc32(
(unsigned char*)account_id.data(),
account_id.size()
@ -51,8 +51,8 @@ void Player::Serialize(cs::MFUserDB& user_db)
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);
p->set_data_version1(pair.second.data_version1);
}
}
@ -63,12 +63,17 @@ void Player::_CMFriendList(f8::MsgHdr& hdr, const cs::CMFriendList& msg)
SendMsg(respmsg);
}
void Player::_CMFriendInvite(f8::MsgHdr& hdr, const cs::CMFriendInvite& msg)
void Player::_CMFriendApply(f8::MsgHdr& hdr, const cs::CMFriendApply& msg)
{
cs::SMFriendInvite respmsg;
SendMsg(respmsg);
}
void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& msg)
{
}
void Player::_CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg)
{
cs::SMFriendIgnore respmsg;
@ -78,6 +83,11 @@ void Player::_CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg)
void Player::_CMFriendDelete(f8::MsgHdr& hdr, const cs::CMFriendDelete& msg)
{
cs::SMFriendDelete respmsg;
Friend* p = GetFriendById(msg.friend_id());
if (p) {
friend_hash_.erase(msg.friend_id());
}
respmsg.set_friend_id(msg.friend_id());
SendMsg(respmsg);
}
@ -289,3 +299,9 @@ void Player::SaveToDB()
crc32_code
);
}
Friend* Player::GetFriendById(const std::string& friend_id)
{
auto itr = friend_hash_.find(friend_id);
return itr != friend_hash_.end() ? &itr->second : nullptr;
}

View File

@ -38,7 +38,8 @@ class Player
}
void _CMFriendList(f8::MsgHdr& hdr, const cs::CMFriendList& msg);
void _CMFriendInvite(f8::MsgHdr& hdr, const cs::CMFriendInvite& msg);
void _CMFriendApply(f8::MsgHdr& hdr, const cs::CMFriendApply& msg);
void _CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& msg);
void _CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg);
void _CMFriendDelete(f8::MsgHdr& hdr, const cs::CMFriendDelete& msg);
@ -61,6 +62,7 @@ private:
void FillIMMsgConext(f8::MsgHdr& hdr, ss::MFIMMsgConext* conext);
void ForwardGroupCMMsg(f8::MsgHdr& hdr, long long hash_code);
void SaveToDB();
Friend* GetFriendById(const std::string& friend_id);
private:
bool dirty_ = false;

View File

@ -69,55 +69,88 @@ message SMLogin
optional string error_msg = 2;
}
//
message CMFriendList
{
}
//
message SMFriendList
{
optional int32 error_code = 1;
optional string error_msg = 2;
repeated MFUserInfo friend_list = 3;
optional int32 error_code = 1; //
optional string error_msg = 2; //
repeated MFUserInfo friend_list = 3; //
}
message CMFriendInvite
//
message CMFriendApply
{
optional string friend_id = 1;
optional string invite_msg = 2;
optional string friend_id = 1; //id
optional string msg = 2; //
}
message SMFriendInvite
//
message SMFriendApply
{
optional int32 error_code = 1;
optional string error_msg = 2;
optional int32 error_code = 1; //
optional string error_msg = 2; //
}
//
message CMFriendApplyList
{
}
//
message SMFriendApplyList
{
optional int32 error_code = 1; //
optional string error_msg = 2; //
}
//
message CMFriendAgree
{
optional string friend_id = 1;
optional string friend_id = 1; //id
}
//
message SMFriendAgree
{
optional int32 error_code = 1;
optional string error_msg = 2;
optional int32 error_code = 1; //
optional string error_msg = 2; //
}
//
message CMFriendIgnore
{
optional string friend_id = 1;
optional string friend_id = 1; //id
}
//
message SMFriendIgnore
{
optional int32 error_code = 1;
optional string error_msg = 2;
optional int32 error_code = 1; //
optional string error_msg = 2; //
}
//
message CMFriendDelete
{
optional string friend_id = 1;
optional string friend_id = 1; //id
}
//
message SMFriendDelete
{
optional int32 error_code = 1;
optional string error_msg = 2;
optional int32 error_code = 1; //
optional string error_msg = 2; //
optional string friend_id = 3; //id
}
//
message CMFriendBlackList
{
}
//
message SMFriendBlackList
{
optional int32 error_code = 1; //
optional string error_msg = 2; //
}
//

View File

@ -101,6 +101,26 @@ CREATE TABLE `friend_apply` (
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-- Table structure for table `event`
--
DROP TABLE IF EXISTS `event`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `event` (
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
`account_id` varchar(60) CHARACTER SET utf8 NOT NULL COMMENT '事件接受方id',
`event_name` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '事件名',
`param1` tinyblob COMMENT 'param1',
`param2` tinyblob COMMENT 'param2',
`param3` tinyblob COMMENT 'param3',
`createtime` 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 */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;