From 13b48a5a91926da0e8b1425da64d3d3cf3a48a7b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 25 Sep 2020 13:49:05 +0800 Subject: [PATCH] 1 --- server/imserver/dbhelper.cc | 46 +++++++++++++++++++++++++++++++++++++ server/imserver/dbhelper.h | 9 ++++++++ server/imserver/guild.cc | 8 +++++++ 3 files changed, 63 insertions(+) diff --git a/server/imserver/dbhelper.cc b/server/imserver/dbhelper.cc index 6f6e410..e181386 100644 --- a/server/imserver/dbhelper.cc +++ b/server/imserver/dbhelper.cc @@ -71,6 +71,52 @@ void DBHelper::SetFriendApplyStatus( ); } +void DBHelper::SetGuildApplyStatus( + const std::string& sender_id, + long long guild_id, + int status) +{ + a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(guild_id); + DBEngine::Instance()->ExecAsyncScript + ( + conn_info, + "UPDATE `guild_apply` SET status=%d WHERE guild_id=%d AND sender_id='%s';", + { + status, + guild_id, + sender_id + }, + a8::XParams(), + nullptr, + nullptr, + guild_id + ); +} + +void DBHelper::SetGuildApplyStatus( + long long idx, + const std::string& sender_id, + long long guild_id, + int status) +{ + a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(guild_id); + DBEngine::Instance()->ExecAsyncScript + ( + conn_info, + "UPDATE `guild_apply` SET status=%d WHERE idx=%d AND guild_id=%d AND sender_id='%s';", + { + status, + idx, + guild_id, + sender_id + }, + a8::XParams(), + nullptr, + nullptr, + guild_id + ); +} + void DBHelper::AddFriendApply(Player* hum, const std::string& target_id) { auto on_ok = diff --git a/server/imserver/dbhelper.h b/server/imserver/dbhelper.h index 1d31c87..ea19cbd 100644 --- a/server/imserver/dbhelper.h +++ b/server/imserver/dbhelper.h @@ -28,6 +28,15 @@ class DBHelper : public a8::Singleton const std::string& sender_id, const std::string& target_id, int status); + void SetGuildApplyStatus( + const std::string& sender_id, + long long guild_id, + int status); + void SetGuildApplyStatus( + long long idx, + const std::string& sender_id, + long long guild_id, + int status); void AddFriendApply(Player* hum, const std::string& target_id); void AddGuildApply(Guild* guild, const cs::MFUserInfo& user_info); void AddEvent(const std::string& sender_id, diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index ae75b52..35fcf02 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -152,6 +152,14 @@ void Guild::_CMGuildAgree(f8::MsgHdr& hdr, const cs::CMGuildAgree& msg) respmsg); return; } + if (!(sender->guild_job == kGuildOwner || sender->guild_job == kGuildAdmin)) { + respmsg.set_errcode(3); + respmsg.set_errmsg("ζƒι™δΈε€Ÿ"); + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, + forward_msg->context(), + respmsg); + return; + } GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, forward_msg->context(), respmsg);