This commit is contained in:
aozhiwei 2020-07-02 20:42:06 +08:00
parent 72f8a332b6
commit 60c75adea8

View File

@ -253,17 +253,31 @@ void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& ms
paging_copy->set_page_size(20);
#endif
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
std::string fmtstr = "'',";
std::vector<a8::XValue> sql_params;
{
sql_params.push_back(a8::XValue(last_apply_idx_));
sql_params.push_back(a8::XValue(myself.base_data.account_id));
for (auto& pair : black_hash_) {
fmtstr += "'%s',";
sql_params.push_back(a8::XValue(pair.second->base_data.account_id));
}
if (!fmtstr.empty()) {
fmtstr = fmtstr.substr(0, fmtstr.size() - 1);
}
}
DBEngine::Instance()->ExecAsyncQuery
(
conn_info,
"SELECT idx, applyid, target_id, sender_id, sender_nickname, "
" sender_avatar_url, sender_sex, sender_data_version1, "
" sender_user_value1, sender_user_value2, sender_user_value3, status "
"FROM friend_apply WHERE idx > %d AND target_id='%s' AND status=0;",
{
last_apply_idx_,
myself.base_data.account_id
},
(
"SELECT idx, applyid, target_id, sender_id, sender_nickname, "
" sender_avatar_url, sender_sex, sender_data_version1, "
" sender_user_value1, sender_user_value2, sender_user_value3, status "
"FROM friend_apply WHERE idx > %d AND target_id='%s' AND status=0 "
" AND sender_id NOT IN(" + fmtstr + ");"
).c_str(),
sql_params,
a8::XParams()
.SetSender(myself.base_data.account_id)
.SetParam1(hdr.socket_handle)
@ -1277,11 +1291,28 @@ void Player::RecalcRedPoint()
};
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code);
std::string fmtstr = "'',";
std::vector<a8::XValue> sql_params;
{
sql_params.push_back(a8::XValue(last_apply_idx_));
sql_params.push_back(a8::XValue(myself.base_data.account_id));
for (auto& pair : black_hash_) {
fmtstr += "'%s',";
sql_params.push_back(a8::XValue(pair.second->base_data.account_id));
}
if (!fmtstr.empty()) {
fmtstr = fmtstr.substr(0, fmtstr.size() - 1);
}
}
DBEngine::Instance()->ExecAsyncQuery
(
conn_info,
"SELECT idx, applyid "
"FROM friend_apply WHERE idx > %d AND target_id='%s' AND status=0 LIMIT 1;",
(
"SELECT idx, applyid "
"FROM friend_apply WHERE idx > %d AND target_id='%s' AND status=0 "
" AND sender_id NOT IN(" + fmtstr + ") LIMIT 1;"
).c_str(),
{
last_apply_idx_,
myself.base_data.account_id