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_NAME_FMT = "friend_imserver";
const char* const PROJ_ROOT_FMT = "/data/logs/%s"; const char* const PROJ_ROOT_FMT = "/data/logs/%s";
const char* const EVENT_FRIEND_DELETE = "friend.delete";
const int MAX_INSTANCE_ID = 1023; const int MAX_INSTANCE_ID = 1023;

View File

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

View File

@ -33,8 +33,8 @@ void Player::Deserialize(const cs::MFUserDB& user_db)
friendobj.nickname = friend_db.nickname(); friendobj.nickname = friend_db.nickname();
friendobj.avatar_url = friend_db.avatar_url(); friendobj.avatar_url = friend_db.avatar_url();
friendobj.sex = friend_db.sex(); friendobj.sex = friend_db.sex();
friendobj.data_version1 = friend_db.data_version1();
friendobj.group_id = friend_db.group_id(); friendobj.group_id = friend_db.group_id();
friendobj.data_version1 = friend_db.data_version1();
friendobj.crc32_code = a8::openssl::Crc32( friendobj.crc32_code = a8::openssl::Crc32(
(unsigned char*)account_id.data(), (unsigned char*)account_id.data(),
account_id.size() account_id.size()
@ -51,8 +51,8 @@ void Player::Serialize(cs::MFUserDB& user_db)
p->set_nickname(pair.second.nickname); p->set_nickname(pair.second.nickname);
p->set_avatar_url(pair.second.avatar_url); p->set_avatar_url(pair.second.avatar_url);
p->set_sex(pair.second.sex); p->set_sex(pair.second.sex);
p->set_data_version1(pair.second.data_version1);
p->set_group_id(pair.second.group_id); 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); 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; cs::SMFriendInvite respmsg;
SendMsg(respmsg); SendMsg(respmsg);
} }
void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& msg)
{
}
void Player::_CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg) void Player::_CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg)
{ {
cs::SMFriendIgnore respmsg; 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) void Player::_CMFriendDelete(f8::MsgHdr& hdr, const cs::CMFriendDelete& msg)
{ {
cs::SMFriendDelete respmsg; 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); SendMsg(respmsg);
} }
@ -289,3 +299,9 @@ void Player::SaveToDB()
crc32_code 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 _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 _CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg);
void _CMFriendDelete(f8::MsgHdr& hdr, const cs::CMFriendDelete& msg); void _CMFriendDelete(f8::MsgHdr& hdr, const cs::CMFriendDelete& msg);
@ -61,6 +62,7 @@ private:
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 SaveToDB(); void SaveToDB();
Friend* GetFriendById(const std::string& friend_id);
private: private:
bool dirty_ = false; bool dirty_ = false;

View File

@ -69,55 +69,88 @@ message SMLogin
optional string error_msg = 2; optional string error_msg = 2;
} }
//
message CMFriendList message CMFriendList
{ {
} }
//
message SMFriendList message SMFriendList
{ {
optional int32 error_code = 1; optional int32 error_code = 1; //
optional string error_msg = 2; optional string error_msg = 2; //
repeated MFUserInfo friend_list = 3; repeated MFUserInfo friend_list = 3; //
} }
message CMFriendInvite //
message CMFriendApply
{ {
optional string friend_id = 1; optional string friend_id = 1; //id
optional string invite_msg = 2; optional string msg = 2; //
} }
message SMFriendInvite //
message SMFriendApply
{ {
optional int32 error_code = 1; optional int32 error_code = 1; //
optional string error_msg = 2; optional string error_msg = 2; //
} }
//
message CMFriendApplyList
{
}
//
message SMFriendApplyList
{
optional int32 error_code = 1; //
optional string error_msg = 2; //
}
//
message CMFriendAgree message CMFriendAgree
{ {
optional string friend_id = 1; optional string friend_id = 1; //id
} }
//
message SMFriendAgree message SMFriendAgree
{ {
optional int32 error_code = 1; optional int32 error_code = 1; //
optional string error_msg = 2; optional string error_msg = 2; //
} }
//
message CMFriendIgnore message CMFriendIgnore
{ {
optional string friend_id = 1; optional string friend_id = 1; //id
} }
//
message SMFriendIgnore message SMFriendIgnore
{ {
optional int32 error_code = 1; optional int32 error_code = 1; //
optional string error_msg = 2; optional string error_msg = 2; //
} }
//
message CMFriendDelete message CMFriendDelete
{ {
optional string friend_id = 1; optional string friend_id = 1; //id
} }
//
message SMFriendDelete message SMFriendDelete
{ {
optional int32 error_code = 1; optional int32 error_code = 1; //
optional string error_msg = 2; 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 */; /*!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 `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 */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;