1
This commit is contained in:
parent
279bf87756
commit
f31a32e56b
@ -194,7 +194,10 @@ void Guild::_CMGuildAgree(f8::MsgHdr& hdr, const cs::CMGuildAgree& msg)
|
|||||||
respmsg);
|
respmsg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!(sender->guild_job == kGuildOwner || sender->guild_job == kGuildAdmin)) {
|
if (!(
|
||||||
|
GetMemberJob(sender->account_id) == kGuildOwner ||
|
||||||
|
GetMemberJob(sender->account_id) == kGuildAdmin)
|
||||||
|
) {
|
||||||
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
|
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
|
||||||
respmsg.set_errcode(3);
|
respmsg.set_errcode(3);
|
||||||
respmsg.set_errmsg("权限不够");
|
respmsg.set_errmsg("权限不够");
|
||||||
@ -236,7 +239,10 @@ void Guild::_CMGuildKick(f8::MsgHdr& hdr, const cs::CMGuildKick& msg)
|
|||||||
respmsg);
|
respmsg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!(sender->guild_job == kGuildOwner || sender->guild_job == kGuildAdmin)) {
|
if (!(
|
||||||
|
GetMemberJob(sender->account_id) == kGuildOwner ||
|
||||||
|
GetMemberJob(sender->account_id) == kGuildAdmin)
|
||||||
|
) {
|
||||||
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
|
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
|
||||||
respmsg.set_errcode(3);
|
respmsg.set_errcode(3);
|
||||||
respmsg.set_errmsg("权限不够");
|
respmsg.set_errmsg("权限不够");
|
||||||
@ -271,7 +277,7 @@ void Guild::_CMGuildQuit(f8::MsgHdr& hdr, const cs::CMGuildQuit& msg)
|
|||||||
respmsg);
|
respmsg);
|
||||||
GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id());
|
GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id());
|
||||||
if (sender) {
|
if (sender) {
|
||||||
if (sender->guild_job != kGuildOwner) {
|
if (GetMemberJob(sender->account_id) != kGuildOwner) {
|
||||||
RemoveMember(sender->account_id,
|
RemoveMember(sender->account_id,
|
||||||
sender->account_id,
|
sender->account_id,
|
||||||
kGuildQuit);
|
kGuildQuit);
|
||||||
@ -286,7 +292,7 @@ void Guild::_CMGuildDismiss(f8::MsgHdr& hdr, const cs::CMGuildDismiss& msg)
|
|||||||
cs::SMGuildDismiss respmsg;
|
cs::SMGuildDismiss respmsg;
|
||||||
GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id());
|
GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id());
|
||||||
if (sender) {
|
if (sender) {
|
||||||
if (sender->guild_job != kGuildOwner) {
|
if (GetMemberJob(sender->account_id) != kGuildOwner) {
|
||||||
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
|
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
|
||||||
respmsg.set_errcode(3);
|
respmsg.set_errcode(3);
|
||||||
respmsg.set_errmsg("权限不够");
|
respmsg.set_errmsg("权限不够");
|
||||||
@ -337,7 +343,10 @@ void Guild::_CMGuildMemberList(f8::MsgHdr& hdr, const cs::CMGuildMemberList& msg
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
auto p = respmsg.add_member_list();
|
auto p = respmsg.add_member_list();
|
||||||
TypeConvert::Convert(guild_id_, *sorted_members_[i], *p);
|
TypeConvert::Convert(guild_id_,
|
||||||
|
GetMemberJob(sorted_members_[i]->account_id),
|
||||||
|
*sorted_members_[i],
|
||||||
|
*p);
|
||||||
}
|
}
|
||||||
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
||||||
forward_msg->context(),
|
forward_msg->context(),
|
||||||
@ -489,7 +498,10 @@ void Guild::FillGuildDB(ss::MFGuildDB& guild_pb)
|
|||||||
{
|
{
|
||||||
for (auto& pair : member_hash_) {
|
for (auto& pair : member_hash_) {
|
||||||
auto p = guild_pb.add_members();
|
auto p = guild_pb.add_members();
|
||||||
TypeConvert::Convert(guild_id_, *pair.second, *p->mutable_base_data());
|
TypeConvert::Convert(guild_id_,
|
||||||
|
GetMemberJob(pair.second->account_id),
|
||||||
|
*pair.second,
|
||||||
|
*p->mutable_base_data());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -500,7 +512,7 @@ void Guild::SerializeMembers(std::string& guild_members)
|
|||||||
a8::MutableXObject* member_xobj = a8::MutableXObject::NewObject();
|
a8::MutableXObject* member_xobj = a8::MutableXObject::NewObject();
|
||||||
member_xobj->SetVal("account_id", pair.second->account_id);
|
member_xobj->SetVal("account_id", pair.second->account_id);
|
||||||
member_xobj->SetVal("nickname", pair.second->nickname);
|
member_xobj->SetVal("nickname", pair.second->nickname);
|
||||||
member_xobj->SetVal("guild_job", pair.second->guild_job);
|
member_xobj->SetVal("guild_job", GetMemberJob(pair.second->account_id));
|
||||||
members_xobj->Push(*member_xobj);
|
members_xobj->Push(*member_xobj);
|
||||||
delete member_xobj;
|
delete member_xobj;
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ public:
|
|||||||
void _CMGuildMemberFire(f8::MsgHdr& hdr, const cs::CMGuildMemberFire& msg);
|
void _CMGuildMemberFire(f8::MsgHdr& hdr, const cs::CMGuildMemberFire& msg);
|
||||||
|
|
||||||
long long GuildId() { return guild_id_; }
|
long long GuildId() { return guild_id_; }
|
||||||
|
int GetMemberJob(const std::string& account_id) { return 0;};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool IsFull();
|
bool IsFull();
|
||||||
|
@ -95,7 +95,8 @@ void TypeConvert::Convert(const ss::MFBaseUserDataDB& base_data_pb, BaseUserData
|
|||||||
base_data.base_data_version = base_data_pb.base_data_version();
|
base_data.base_data_version = base_data_pb.base_data_version();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TypeConvert::Convert(long long guild_id, const GuildMember& member, ss::MFBaseUserDataDB& base_data_pb)
|
void TypeConvert::Convert(long long guild_id, int guild_job,
|
||||||
|
const GuildMember& member, ss::MFBaseUserDataDB& base_data_pb)
|
||||||
{
|
{
|
||||||
base_data_pb.set_account_id(member.account_id);
|
base_data_pb.set_account_id(member.account_id);
|
||||||
base_data_pb.set_nickname(member.nickname);
|
base_data_pb.set_nickname(member.nickname);
|
||||||
@ -103,14 +104,15 @@ void TypeConvert::Convert(long long guild_id, const GuildMember& member, ss::MFB
|
|||||||
base_data_pb.set_sex(member.sex);
|
base_data_pb.set_sex(member.sex);
|
||||||
base_data_pb.set_last_login_time(member.last_login_time);
|
base_data_pb.set_last_login_time(member.last_login_time);
|
||||||
base_data_pb.set_guild_id(guild_id);
|
base_data_pb.set_guild_id(guild_id);
|
||||||
base_data_pb.set_guild_job(member.guild_job);
|
base_data_pb.set_guild_job(guild_job);
|
||||||
base_data_pb.set_user_value1(member.user_value1);
|
base_data_pb.set_user_value1(member.user_value1);
|
||||||
base_data_pb.set_user_value2(member.user_value2);
|
base_data_pb.set_user_value2(member.user_value2);
|
||||||
base_data_pb.set_user_value3(member.user_value3);
|
base_data_pb.set_user_value3(member.user_value3);
|
||||||
base_data_pb.set_base_data_version(member.data_version1);
|
base_data_pb.set_base_data_version(member.data_version1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TypeConvert::Convert(long long guild_id, const GuildMember& member, cs::MFBaseUserData& base_data_pb)
|
void TypeConvert::Convert(long long guild_id, int guild_job,
|
||||||
|
const GuildMember& member, cs::MFBaseUserData& base_data_pb)
|
||||||
{
|
{
|
||||||
base_data_pb.set_account_id(member.account_id);
|
base_data_pb.set_account_id(member.account_id);
|
||||||
base_data_pb.set_nickname(member.nickname);
|
base_data_pb.set_nickname(member.nickname);
|
||||||
@ -118,7 +120,7 @@ void TypeConvert::Convert(long long guild_id, const GuildMember& member, cs::MFB
|
|||||||
base_data_pb.set_sex(member.sex);
|
base_data_pb.set_sex(member.sex);
|
||||||
base_data_pb.set_last_login_time(member.last_login_time);
|
base_data_pb.set_last_login_time(member.last_login_time);
|
||||||
base_data_pb.set_guild_id(guild_id);
|
base_data_pb.set_guild_id(guild_id);
|
||||||
base_data_pb.set_guild_job(member.guild_job);
|
base_data_pb.set_guild_job(guild_job);
|
||||||
base_data_pb.set_user_value1(member.user_value1);
|
base_data_pb.set_user_value1(member.user_value1);
|
||||||
base_data_pb.set_user_value2(member.user_value2);
|
base_data_pb.set_user_value2(member.user_value2);
|
||||||
base_data_pb.set_user_value3(member.user_value3);
|
base_data_pb.set_user_value3(member.user_value3);
|
||||||
@ -132,7 +134,6 @@ void TypeConvert::Convert(const ss::MFBaseUserDataDB& base_data_pb, GuildMember&
|
|||||||
member.avatar_url = base_data_pb.avatar_url();
|
member.avatar_url = base_data_pb.avatar_url();
|
||||||
member.sex = base_data_pb.sex();
|
member.sex = base_data_pb.sex();
|
||||||
member.last_login_time = base_data_pb.last_login_time();
|
member.last_login_time = base_data_pb.last_login_time();
|
||||||
member.guild_job = base_data_pb.guild_job();
|
|
||||||
member.user_value1 = base_data_pb.user_value1();
|
member.user_value1 = base_data_pb.user_value1();
|
||||||
member.user_value2 = base_data_pb.user_value2();
|
member.user_value2 = base_data_pb.user_value2();
|
||||||
member.user_value3 = base_data_pb.user_value3();
|
member.user_value3 = base_data_pb.user_value3();
|
||||||
@ -146,7 +147,6 @@ void TypeConvert::Convert(const cs::MFBaseUserData& base_data_pb, GuildMember& m
|
|||||||
member.avatar_url = base_data_pb.avatar_url();
|
member.avatar_url = base_data_pb.avatar_url();
|
||||||
member.sex = base_data_pb.sex();
|
member.sex = base_data_pb.sex();
|
||||||
member.last_login_time = base_data_pb.last_login_time();
|
member.last_login_time = base_data_pb.last_login_time();
|
||||||
member.guild_job = base_data_pb.guild_job();
|
|
||||||
member.user_value1 = base_data_pb.user_value1();
|
member.user_value1 = base_data_pb.user_value1();
|
||||||
member.user_value2 = base_data_pb.user_value2();
|
member.user_value2 = base_data_pb.user_value2();
|
||||||
member.user_value3 = base_data_pb.user_value3();
|
member.user_value3 = base_data_pb.user_value3();
|
||||||
|
@ -30,9 +30,11 @@ class TypeConvert
|
|||||||
static void Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb);
|
static void Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb);
|
||||||
static void Convert(const ss::MFBaseUserDataDB& base_data_pb, BaseUserData& base_data);
|
static void Convert(const ss::MFBaseUserDataDB& base_data_pb, BaseUserData& base_data);
|
||||||
|
|
||||||
static void Convert(long long guild_id, const GuildMember& member, ss::MFBaseUserDataDB& base_data_pb);
|
static void Convert(long long guild_id, int guild_job,
|
||||||
|
const GuildMember& member, ss::MFBaseUserDataDB& base_data_pb);
|
||||||
static void Convert(const ss::MFBaseUserDataDB& base_data_pb, GuildMember& member);
|
static void Convert(const ss::MFBaseUserDataDB& base_data_pb, GuildMember& member);
|
||||||
static void Convert(long long guild_id, const GuildMember& member, cs::MFBaseUserData& base_data_pb);
|
static void Convert(long long guild_id, int guild_job,
|
||||||
|
const GuildMember& member, cs::MFBaseUserData& base_data_pb);
|
||||||
static void Convert(const cs::MFBaseUserData& base_data_pb, GuildMember& member);
|
static void Convert(const cs::MFBaseUserData& base_data_pb, GuildMember& member);
|
||||||
|
|
||||||
static void Convert(const cs::MFBaseUserData& base_data_pb, BaseUserData& base_data);
|
static void Convert(const cs::MFBaseUserData& base_data_pb, BaseUserData& base_data);
|
||||||
|
@ -88,7 +88,6 @@ struct RoleData
|
|||||||
|
|
||||||
struct GuildMember
|
struct GuildMember
|
||||||
{
|
{
|
||||||
int guild_job = 0;
|
|
||||||
std::string account_id;
|
std::string account_id;
|
||||||
std::string nickname;
|
std::string nickname;
|
||||||
std::string avatar_url;
|
std::string avatar_url;
|
||||||
|
@ -116,7 +116,8 @@ CREATE TABLE `guild` (
|
|||||||
PRIMARY KEY (`idx`),
|
PRIMARY KEY (`idx`),
|
||||||
UNIQUE KEY `guild_id` (`guild_id`),
|
UNIQUE KEY `guild_id` (`guild_id`),
|
||||||
KEY `owner_id` (`owner_id`),
|
KEY `owner_id` (`owner_id`),
|
||||||
KEY `creator_id` (`creator_id`)
|
KEY `creator_id` (`creator_id`),
|
||||||
|
KEY `modifytime` (`modifytime`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
/*!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 */;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user