This commit is contained in:
aozhiwei 2020-09-15 15:02:50 +08:00
parent 3af8b04c82
commit 3b39d9ff80
4 changed files with 59 additions and 4 deletions

View File

@ -1,12 +1,14 @@
#include "precompile.h"
#include <a8/timer.h>
#include <a8/openssl.h>
#include "asynctaskmgr.h"
#include "app.h"
#include "player.h"
#include "playermgr.h"
#include "dbhelper.h"
#include "dbengine.h"
#include "cs_proto.pb.h"
#include "ss_proto.pb.h"
@ -116,6 +118,13 @@ struct RecommandFriendTask
}
};
struct CreateGuildTask
{
long long seqid = 0;
ss::MFIMMsgConext context;
cs::CMGuildCreate msg;
};
void AsyncTaskMgr::Init()
{
@ -193,6 +202,33 @@ void AsyncTaskMgr::CreateRecommandFriendTask(Player* hum)
);
}
void AsyncTaskMgr::CreateNewGuildTask(const ss::MFIMMsgConext& context, const cs::CMGuildCreate& msg)
{
CreateGuildTask* task = new CreateGuildTask();
{
task->seqid = App::Instance()->NewSeqId();
task->context = context;
task->msg = msg;
}
std::string guild_id = a8::XValue(context.user_info().base_data().guild_id()).GetString();
long long crc32_code = a8::openssl::Crc32(
(unsigned char*)guild_id.data(),
guild_id.size()
);
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(crc32_code);
DBEngine::Instance()->ExecAsyncScript
(
conn_info,
"UPDATE `friend_apply` SET status=%d WHERE target_id='%s' AND sender_id='%s';",
{
},
a8::XParams(),
nullptr,
nullptr,
crc32_code
);
}
void AsyncTaskMgr::_SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg)
{
QueryUserStatusTask* task = GetQueryUserStatusTask(msg.context().seqid());

View File

@ -1,13 +1,20 @@
#pragma once
namespace cs
{
class CMGuildCreate;
}
namespace ss
{
class MFIMMsgConext;
class SS_IM_PushUserOnlineState;
class SS_IM_RandomUsersResponse;
}
struct QueryUserStatusTask;
struct RecommandFriendTask;
struct CreateGuildTask;
struct AsyncTaskContext;
class Player;
class AsyncTaskMgr : public a8::Singleton<AsyncTaskMgr>
@ -22,6 +29,7 @@ public:
void CreateQueryUserStatusTask(Player* hum, std::vector<std::string>& account_ids);
void CreateRecommandFriendTask(Player* hum);
void CreateNewGuildTask(const ss::MFIMMsgConext& context, const cs::CMGuildCreate& msg);
void _SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg);
void _SS_IM_RandomUsersResponse(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersResponse& msg);
@ -36,4 +44,5 @@ private:
private:
std::map<long long, QueryUserStatusTask*> query_user_status_tasks_;
std::map<long long, RecommandFriendTask*> recommand_friend_tasks_;
std::map<long long, CreateGuildTask*> create_guild_tasks_;
};

View File

@ -6,6 +6,7 @@
#include "cs_proto.pb.h"
#include "ss_proto.pb.h"
#include "MSConnMgr.h"
#include "asynctaskmgr.h"
void GuildMgr::Init()
{
@ -93,6 +94,7 @@ void GuildMgr::_CMGuildCreate(const ss::MFIMMsgConext& context, const cs::CMGuil
ForwardGuildSMMsg(context, respmsg);
return;
}
AsyncTaskMgr::Instance()->CreateNewGuildTask(context, msg);
}
void GuildMgr::_CMGuildJoin(const ss::MFIMMsgConext& context, const cs::CMGuildJoin& msg)

View File

@ -88,10 +88,18 @@ DROP TABLE IF EXISTS `guild`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `guild` (
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
`guild_id` bigint NOT NULL COMMENT 'guild_id',
`guild_name` tinyblob COMMENT 'guild_name',
`owner_id` varchar(60) CHARACTER SET utf8 NOT NULL COMMENT '公会主',
`creator_id` varchar(60) CHARACTER SET utf8 NOT NULL COMMENT '公会创建者',
`guild_id` bigint NOT NULL COMMENT '公会id',
`guild_name` tinyblob COMMENT '公会名字',
`guild_lv` int(11) NOT NULL DEFAULT '0' COMMENT '公会等级',
`guild_exp` int(11) NOT NULL DEFAULT '0' COMMENT '公会经验',
`guild_badge` int(11) NOT NULL DEFAULT '0' COMMENT '公会徽章',
`guild_apply_num` int(11) NOT NULL DEFAULT '0' COMMENT '申请人数',
`guld_administers` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '公会管理员',
`guld_notice` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '公会公告',
`guld_declaration` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '公会宣言',
`guild_log` mediumblob COMMENT '公会日志',
`owner_id` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '公会主',
`creator_id` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '公会创建者',
`guild_data` mediumblob COMMENT '公会数据',
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',