189 lines
5.4 KiB
C++
189 lines
5.4 KiB
C++
#include "precompile.h"
|
|
|
|
#include <a8/openssl.h>
|
|
|
|
#include "dbengine.h"
|
|
|
|
#include "dbhelper.h"
|
|
#include "player.h"
|
|
#include "app.h"
|
|
#include "synchelper.h"
|
|
|
|
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
|
|
);
|
|
SyncHelper::Instance()->SyncApplyFriend(hum, target_id);
|
|
}
|
|
|
|
void DBHelper::AddEvent(const std::string& sender_id,
|
|
const std::string& target_id,
|
|
const std::string& event_name,
|
|
const std::string& event_data)
|
|
{
|
|
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 crc32_code = a8::openssl::Crc32(
|
|
(unsigned char*)target_id.data(),
|
|
target_id.size()
|
|
);
|
|
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(crc32_code);
|
|
DBEngine::Instance()->ExecAsyncScript
|
|
(
|
|
conn_info,
|
|
"INSERT INTO `event`(sender_id, target_id, event_name, "
|
|
" param1, param2, param3, event_data, status, createtime)"
|
|
"VALUES('%s', '%s', '%s', '', '', '', '%s', 0, %d);",
|
|
{
|
|
sender_id,
|
|
target_id,
|
|
event_name,
|
|
event_data,
|
|
App::Instance()->nowtime
|
|
},
|
|
a8::XParams(),
|
|
on_ok,
|
|
on_error,
|
|
crc32_code
|
|
);
|
|
}
|
|
|
|
void DBHelper::SetEventStatus(long long idx,
|
|
const std::string& target_id,
|
|
int status)
|
|
{
|
|
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 crc32_code = a8::openssl::Crc32(
|
|
(unsigned char*)target_id.data(),
|
|
target_id.size()
|
|
);
|
|
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(crc32_code);
|
|
DBEngine::Instance()->ExecAsyncScript
|
|
(
|
|
conn_info,
|
|
"UPDATE `event` SET status=%d WHERE idx=%d;",
|
|
{
|
|
status,
|
|
idx
|
|
},
|
|
a8::XParams(),
|
|
on_ok,
|
|
on_error,
|
|
crc32_code
|
|
);
|
|
}
|