重构friend_apply
This commit is contained in:
parent
e0d0382d26
commit
41f108e402
@ -1,8 +1,12 @@
|
||||
#include "precompile.h"
|
||||
|
||||
#include <a8/openssl.h>
|
||||
|
||||
#include "dbengine.h"
|
||||
|
||||
#include "dbhelper.h"
|
||||
#include "player.h"
|
||||
#include "app.h"
|
||||
|
||||
void DBHelper::Init()
|
||||
{
|
||||
@ -11,3 +15,96 @@ void DBHelper::Init()
|
||||
void DBHelper::UnInit()
|
||||
{
|
||||
}
|
||||
|
||||
void DBHelper::SetFriendApplyStatus(
|
||||
unsigned int crc32_code,
|
||||
const std::string& sender_id,
|
||||
const std::string& target_id,
|
||||
int status)
|
||||
{
|
||||
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';",
|
||||
{
|
||||
status,
|
||||
target_id,
|
||||
sender_id
|
||||
},
|
||||
a8::XParams(),
|
||||
nullptr,
|
||||
nullptr,
|
||||
crc32_code
|
||||
);
|
||||
}
|
||||
|
||||
void DBHelper::SetFriendApplyStatus(
|
||||
unsigned int crc32_code,
|
||||
long long idx,
|
||||
const std::string& sender_id,
|
||||
const std::string& target_id,
|
||||
int status)
|
||||
{
|
||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(crc32_code);
|
||||
DBEngine::Instance()->ExecAsyncScript
|
||||
(
|
||||
conn_info,
|
||||
"UPDATE `friend_apply` SET status=%d WHERE idx=%d AND target_id='%s' AND sender_id='%s';",
|
||||
{
|
||||
idx,
|
||||
status,
|
||||
target_id,
|
||||
sender_id
|
||||
},
|
||||
a8::XParams(),
|
||||
nullptr,
|
||||
nullptr,
|
||||
crc32_code
|
||||
);
|
||||
}
|
||||
|
||||
void DBHelper::AddFriendApply(Player* hum, const std::string& target_id)
|
||||
{
|
||||
auto on_ok =
|
||||
[] (a8::XParams& param, const f8::DataSet* data_set)
|
||||
{
|
||||
|
||||
};
|
||||
auto on_error =
|
||||
[] (a8::XParams& param, int error_code, const std::string& error_msg)
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
long long friend_crc32_code = a8::openssl::Crc32(
|
||||
(unsigned char*)target_id.data(),
|
||||
target_id.size()
|
||||
);
|
||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(friend_crc32_code);
|
||||
DBEngine::Instance()->ExecAsyncScript
|
||||
(
|
||||
conn_info,
|
||||
"INSERT INTO `friend_apply`(applyid, target_id, sender_id, sender_nickname, "
|
||||
" sender_avatar_url, sender_sex, sender_data_version1, "
|
||||
" createtime, sender_user_value1, sender_user_value2, sender_user_value3, status)"
|
||||
"VALUES(%d, '%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, %d, 0);",
|
||||
{
|
||||
App::Instance()->NewUUID(),
|
||||
target_id,
|
||||
hum->myself.base_data.account_id,
|
||||
hum->myself.base_data.nickname,
|
||||
hum->myself.base_data.avatar_url,
|
||||
hum->myself.base_data.sex,
|
||||
hum->myself.base_data.base_data_version,
|
||||
hum->myself.base_data.user_value1,
|
||||
hum->myself.base_data.user_value2,
|
||||
hum->myself.base_data.user_value3,
|
||||
App::Instance()->nowtime
|
||||
},
|
||||
a8::XParams(),
|
||||
on_ok,
|
||||
on_error,
|
||||
friend_crc32_code
|
||||
);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
class Player;
|
||||
class DBHelper : public a8::Singleton<DBHelper>
|
||||
{
|
||||
private:
|
||||
@ -10,5 +11,18 @@ class DBHelper : public a8::Singleton<DBHelper>
|
||||
void Init();
|
||||
void UnInit();
|
||||
|
||||
void SetFriendApplyStatus(
|
||||
unsigned int crc32_code,
|
||||
const std::string& sender_id,
|
||||
const std::string& target_id,
|
||||
int status);
|
||||
void SetFriendApplyStatus(
|
||||
unsigned int crc32_code,
|
||||
long long idx,
|
||||
const std::string& sender_id,
|
||||
const std::string& target_id,
|
||||
int status);
|
||||
void AddFriendApply(Player* hum, const std::string& target_id);
|
||||
|
||||
|
||||
};
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "dbengine.h"
|
||||
#include "MSConnMgr.h"
|
||||
#include "dbengine.h"
|
||||
#include "dbhelper.h"
|
||||
#include "app.h"
|
||||
#include "typeconvert.h"
|
||||
#include "playermgr.h"
|
||||
@ -133,49 +134,7 @@ void Player::_CMFriendApply(f8::MsgHdr& hdr, const cs::CMFriendApply& msg)
|
||||
return;
|
||||
}
|
||||
SendMsg(respmsg);
|
||||
{
|
||||
auto on_ok =
|
||||
[] (a8::XParams& param, const f8::DataSet* data_set)
|
||||
{
|
||||
|
||||
};
|
||||
auto on_error =
|
||||
[] (a8::XParams& param, int error_code, const std::string& error_msg)
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
long long friend_crc32_code = a8::openssl::Crc32(
|
||||
(unsigned char*)msg.friend_id().data(),
|
||||
msg.friend_id().size()
|
||||
);
|
||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(friend_crc32_code);
|
||||
DBEngine::Instance()->ExecAsyncScript
|
||||
(
|
||||
conn_info,
|
||||
"INSERT INTO `friend_apply`(applyid, target_id, sender_id, sender_nickname, "
|
||||
" sender_avatar_url, sender_sex, sender_data_version1, "
|
||||
" createtime, sender_user_value1, sender_user_value2, sender_user_value3, status)"
|
||||
"VALUES(%d, '%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, %d, 0);",
|
||||
{
|
||||
App::Instance()->NewUUID(),
|
||||
msg.friend_id(),
|
||||
myself.base_data.account_id,
|
||||
myself.base_data.nickname,
|
||||
myself.base_data.avatar_url,
|
||||
myself.base_data.sex,
|
||||
myself.base_data.base_data_version,
|
||||
myself.base_data.user_value1,
|
||||
myself.base_data.user_value2,
|
||||
myself.base_data.user_value3,
|
||||
App::Instance()->nowtime
|
||||
},
|
||||
a8::XParams(),
|
||||
on_ok,
|
||||
on_error,
|
||||
friend_crc32_code
|
||||
);
|
||||
}
|
||||
DBHelper::Instance()->AddFriendApply(this, msg.friend_id());
|
||||
}
|
||||
|
||||
void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& msg)
|
||||
@ -298,19 +257,12 @@ void Player::_CMFriendAgree(f8::MsgHdr& hdr, const cs::CMFriendAgree& msg)
|
||||
}
|
||||
#endif
|
||||
|
||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
|
||||
DBEngine::Instance()->ExecAsyncScript
|
||||
DBHelper::Instance()->SetFriendApplyStatus
|
||||
(
|
||||
conn_info,
|
||||
"UPDATE `friend_apply` SET status=1 WHERE target_id='%s' AND sender_id='%s';",
|
||||
{
|
||||
msg.apply().target_id(),
|
||||
msg.apply().base_data().account_id(),
|
||||
},
|
||||
a8::XParams(),
|
||||
nullptr,
|
||||
nullptr,
|
||||
myself.crc32_code
|
||||
myself.crc32_code,
|
||||
msg.apply().target_id(),
|
||||
AccountId(),
|
||||
1
|
||||
);
|
||||
}
|
||||
|
||||
@ -319,20 +271,13 @@ void Player::_CMFriendRefuse(f8::MsgHdr& hdr, const cs::CMFriendRefuse& msg)
|
||||
cs::SMFriendRefuse respmsg;
|
||||
SendMsg(respmsg);
|
||||
|
||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
|
||||
DBEngine::Instance()->ExecAsyncScript
|
||||
DBHelper::Instance()->SetFriendApplyStatus
|
||||
(
|
||||
conn_info,
|
||||
"UPDATE `friend_apply` SET status=2 WHERE idx=%d AND target_id='%s' AND sender_id='%s';",
|
||||
{
|
||||
msg.apply().idx(),
|
||||
msg.apply().target_id(),
|
||||
msg.apply().base_data().account_id(),
|
||||
},
|
||||
a8::XParams(),
|
||||
nullptr,
|
||||
nullptr,
|
||||
myself.crc32_code
|
||||
myself.crc32_code,
|
||||
msg.apply().idx(),
|
||||
msg.apply().target_id(),
|
||||
AccountId(),
|
||||
2
|
||||
);
|
||||
}
|
||||
|
||||
@ -341,20 +286,13 @@ void Player::_CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg)
|
||||
cs::SMFriendIgnore respmsg;
|
||||
SendMsg(respmsg);
|
||||
|
||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
|
||||
DBEngine::Instance()->ExecAsyncScript
|
||||
DBHelper::Instance()->SetFriendApplyStatus
|
||||
(
|
||||
conn_info,
|
||||
"UPDATE `friend_apply` SET status=3 WHERE idx=%d AND target_id='%s' AND sender_id='%s';",
|
||||
{
|
||||
msg.apply().idx(),
|
||||
msg.apply().target_id(),
|
||||
msg.apply().base_data().account_id(),
|
||||
},
|
||||
a8::XParams(),
|
||||
nullptr,
|
||||
nullptr,
|
||||
myself.crc32_code
|
||||
myself.crc32_code,
|
||||
msg.apply().idx(),
|
||||
msg.apply().target_id(),
|
||||
AccountId(),
|
||||
3
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user