diff --git a/server/imserver/player.cc b/server/imserver/player.cc index bdcd04d..ca6290c 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -155,8 +155,8 @@ void Player::_CMFriendApply(f8::MsgHdr& hdr, const cs::CMFriendApply& msg) conn_info, "INSERT INTO `friend_apply`(applyid, target_id, sender_id, sender_nickname, " " sender_avatar_url, sender_sex, sender_group_id, sender_data_version1, " - " createtime)" - "VALUES(%d, '%s', '%s', '%s', '%s', %d, %d, %d, %d);", + " createtime, sender_user_value1, sender_user_value2, sender_user_value3, stauts)" + "VALUES(%d, '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0);", { App::Instance()->NewUUID(), msg.friend_id(), @@ -166,6 +166,9 @@ void Player::_CMFriendApply(f8::MsgHdr& hdr, const cs::CMFriendApply& msg) myself.base_data.sex, myself.base_data.group_id, 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(), @@ -202,6 +205,9 @@ void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& ms apply.base_data.avatar_url = row[5]; apply.base_data.sex = a8::XValue(row[6]); apply.base_data.base_data_version = a8::XValue(row[7]); + apply.base_data.user_value1 = a8::XValue(row[8]); + apply.base_data.user_value2 = a8::XValue(row[9]); + apply.base_data.user_value3 = a8::XValue(row[10]); hum->apply_list_.push_back(apply); if (apply.idx > hum->last_apply_idx_) { hum->last_apply_idx_ = apply.idx; @@ -237,8 +243,9 @@ void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& ms ( conn_info, "SELECT idx, applyid, target_id, sender_id, sender_nickname, " - " sender_avatar_url, sender_sex, sender_group_id, sender_data_version1 " - "FROM friend_apply WHERE idx > %d AND target_id='%s';", + " sender_avatar_url, sender_sex, sender_group_id, sender_data_version1, " + " sender_user_value1, sender_user_value2, sender_user_value3, status" + "FROM friend_apply WHERE idx > %d AND target_id='%s' AND stauts=0;", { last_apply_idx_, myself.base_data.account_id @@ -279,18 +286,66 @@ void Player::_CMFriendAgree(f8::MsgHdr& hdr, const cs::CMFriendAgree& msg) friend_hash_[friendobj->base_data.account_id] = friendobj; PlayerMgr::Instance()->WatchPlayer(friendobj); SendMsg(respmsg); + + a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(myself.crc32_code); + DBEngine::Instance()->ExecAsyncScript + ( + conn_info, + "UPDATE `friend_apply` SET status=1 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 + ); } 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 + ( + 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 + ); } 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 + ( + 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 + ); } void Player::_CMFriendDelete(f8::MsgHdr& hdr, const cs::CMFriendDelete& msg)