重构friend_apply
This commit is contained in:
parent
e0d0382d26
commit
41f108e402
@ -1,8 +1,12 @@
|
|||||||
#include "precompile.h"
|
#include "precompile.h"
|
||||||
|
|
||||||
|
#include <a8/openssl.h>
|
||||||
|
|
||||||
#include "dbengine.h"
|
#include "dbengine.h"
|
||||||
|
|
||||||
#include "dbhelper.h"
|
#include "dbhelper.h"
|
||||||
|
#include "player.h"
|
||||||
|
#include "app.h"
|
||||||
|
|
||||||
void DBHelper::Init()
|
void DBHelper::Init()
|
||||||
{
|
{
|
||||||
@ -11,3 +15,96 @@ void DBHelper::Init()
|
|||||||
void DBHelper::UnInit()
|
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
|
#pragma once
|
||||||
|
|
||||||
|
class Player;
|
||||||
class DBHelper : public a8::Singleton<DBHelper>
|
class DBHelper : public a8::Singleton<DBHelper>
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@ -10,5 +11,18 @@ class DBHelper : public a8::Singleton<DBHelper>
|
|||||||
void Init();
|
void Init();
|
||||||
void UnInit();
|
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 "dbengine.h"
|
||||||
#include "MSConnMgr.h"
|
#include "MSConnMgr.h"
|
||||||
#include "dbengine.h"
|
#include "dbengine.h"
|
||||||
|
#include "dbhelper.h"
|
||||||
#include "app.h"
|
#include "app.h"
|
||||||
#include "typeconvert.h"
|
#include "typeconvert.h"
|
||||||
#include "playermgr.h"
|
#include "playermgr.h"
|
||||||
@ -133,49 +134,7 @@ void Player::_CMFriendApply(f8::MsgHdr& hdr, const cs::CMFriendApply& msg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SendMsg(respmsg);
|
SendMsg(respmsg);
|
||||||
{
|
DBHelper::Instance()->AddFriendApply(this, msg.friend_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*)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
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& msg)
|
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
|
#endif
|
||||||
|
|
||||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
|
DBHelper::Instance()->SetFriendApplyStatus
|
||||||
DBEngine::Instance()->ExecAsyncScript
|
|
||||||
(
|
(
|
||||||
conn_info,
|
myself.crc32_code,
|
||||||
"UPDATE `friend_apply` SET status=1 WHERE target_id='%s' AND sender_id='%s';",
|
msg.apply().target_id(),
|
||||||
{
|
AccountId(),
|
||||||
msg.apply().target_id(),
|
1
|
||||||
msg.apply().base_data().account_id(),
|
|
||||||
},
|
|
||||||
a8::XParams(),
|
|
||||||
nullptr,
|
|
||||||
nullptr,
|
|
||||||
myself.crc32_code
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,20 +271,13 @@ void Player::_CMFriendRefuse(f8::MsgHdr& hdr, const cs::CMFriendRefuse& msg)
|
|||||||
cs::SMFriendRefuse respmsg;
|
cs::SMFriendRefuse respmsg;
|
||||||
SendMsg(respmsg);
|
SendMsg(respmsg);
|
||||||
|
|
||||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
|
DBHelper::Instance()->SetFriendApplyStatus
|
||||||
DBEngine::Instance()->ExecAsyncScript
|
|
||||||
(
|
(
|
||||||
conn_info,
|
myself.crc32_code,
|
||||||
"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().idx(),
|
AccountId(),
|
||||||
msg.apply().target_id(),
|
2
|
||||||
msg.apply().base_data().account_id(),
|
|
||||||
},
|
|
||||||
a8::XParams(),
|
|
||||||
nullptr,
|
|
||||||
nullptr,
|
|
||||||
myself.crc32_code
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,20 +286,13 @@ void Player::_CMFriendIgnore(f8::MsgHdr& hdr, const cs::CMFriendIgnore& msg)
|
|||||||
cs::SMFriendIgnore respmsg;
|
cs::SMFriendIgnore respmsg;
|
||||||
SendMsg(respmsg);
|
SendMsg(respmsg);
|
||||||
|
|
||||||
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
|
DBHelper::Instance()->SetFriendApplyStatus
|
||||||
DBEngine::Instance()->ExecAsyncScript
|
|
||||||
(
|
(
|
||||||
conn_info,
|
myself.crc32_code,
|
||||||
"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().idx(),
|
AccountId(),
|
||||||
msg.apply().target_id(),
|
3
|
||||||
msg.apply().base_data().account_id(),
|
|
||||||
},
|
|
||||||
a8::XParams(),
|
|
||||||
nullptr,
|
|
||||||
nullptr,
|
|
||||||
myself.crc32_code
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user