relation/server/imserver/dbhelper.cc
aozhiwei 1807268f9e 1
2020-06-22 20:01:33 +08:00

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
);
}