进入房间

This commit is contained in:
2025-08-20 10:17:10 +08:00
parent 7dd338cde2
commit e2a4a4d1d4
2 changed files with 77 additions and 16 deletions

View File

@@ -85,7 +85,7 @@ class Friend extends Model
}
// 获取心动值最高的
$originalPairs = db::name('user_friending_heart')
$originalPairs = db::name('vs_user_friending_heart')
->where(['room_id'=>$room_id,'friend_id'=>$id ,'status' =>1])
->order('heart_value DESC')->find();
$friend_heart_value = get_system_config_value('friend_heart_value');
@@ -137,9 +137,9 @@ class Friend extends Model
$user1 = min($user1_id, $user2_id);
$user2 = max($user1_id, $user2_id);
$friending_heart = db::name('user_friending_heart')
$friending_heart = db::name('vs_user_friending_heart')
->where(['room_id'=>$room_id,'friend_id'=>$friend_id ,'user1_id' =>$user1,'user2_id' => $user2])->find();
$originalPairs = db::name('user_friending_heart')
$originalPairs = db::name('vs_user_friending_heart')
->where(['id'=>$friending_heart['id']])
->save(['status' => 3,'friend_config_id' =>$friending_config_id]);
if ($originalPairs) {
@@ -179,7 +179,7 @@ class Friend extends Model
$friendendtime = time() + $shijian * 3600;
//更新关系结束时间
db::name('user_friending_heart')->where(['id'=>$friending_heart['id']])->update(['contact_end_time' => $friendendtime]);
db::name('vs_user_friending_heart')->where(['id'=>$friending_heart['id']])->update(['contact_end_time' => $friendendtime]);
//关系增加时间
$room_auction = model('RoomAuction')->room_auction_create_or_add($user1_id,$user2_id,$friending_config_id,$shijian*3600,0);
@@ -244,7 +244,7 @@ class Friend extends Model
$user_idd = $to_uid;
if($heart_id){//有这个值就是助力 不参加抢麦操作
db::name('user_friending_heart')->where(['id' => $heart_id])->setInc('heart_value', $sumPrice);
db::name('vs_user_friending_heart')->where(['id' => $heart_id])->setInc('heart_value', $sumPrice);
$this->pullHeartChange($room_id,$friend['id']);//聊天室心动值变化通知
//生成新排名 判断抱上麦 还是换麦
$this->pullUserPit($room_id,$friend['id']);
@@ -351,7 +351,7 @@ class Friend extends Model
// 获取心跳值排行
public function getRanking($room_id,$friend_id) {
// 获取有心动值的用户对且不重复
$originalPairs = db::name('user_friending_heart')
$originalPairs = db::name('vs_user_friending_heart')
->where(array('room_id'=>$room_id,'friend_id'=>$friend_id))
->order('heart_value DESC')->select();
// 初始化排名数组和已使用用户数组
@@ -383,7 +383,7 @@ class Friend extends Model
$ranking2 = [];
if(count($ranking)<3){
$make_up_num = 3 - count($ranking);
$ranking_make_up = db::name('user_friending_heart')
$ranking_make_up = db::name('vs_user_friending_heart')
->where(['room_id'=>$room_id,'friend_id'=>$friend_id ,'id'=> ['notin',$heart_ids]])
->limit($make_up_num)
->order('heart_value DESC')->select();
@@ -420,7 +420,7 @@ class Friend extends Model
$ranking_rut = array_merge($ranking, $ranking1);
if(count($ranking_rut)<6){
$make_up_num = 6 - count($ranking_rut);
$ranking_make_up = db::name('user_friending_heart')
$ranking_make_up = db::name('vs_user_friending_heart')
->where(array('room_id'=>$room_id,'friend_id'=>$friend_id ,'id'=>array('notin',$heart_ids)))
->limit($make_up_num)
->order('heart_value DESC')->select();
@@ -650,21 +650,21 @@ class Friend extends Model
$user1 = min(UID, $user_ids[$i]);
$user2 = max(UID, $user_ids[$i]);
// 更新心动关系表
$relation = db::name('user_friending_heart')->where([
$relation = db::name('vs_user_friending_heart')->where([
'user1_id' => $user1,
'user2_id' => $user2,
'friend_id' => $friend_id
])->find();
if ($relation) {
db::name('user_friending_heart')->where([
db::name('vs_user_friending_heart')->where([
'room_id' => $room_id,
'user1_id' => $user1,
'user2_id' => $user2,
'friend_id' => $friend_id
])->setInc('heart_value', $heart_value);
} else {
$relation['id'] = db::name('user_friending_heart')->insert([
$relation['id'] = db::name('vs_user_friending_heart')->insert([
'room_id' => $room_id,
'user1_id' => $user1,
'user2_id' => $user2,
@@ -674,10 +674,10 @@ class Friend extends Model
}
}
//修改用户行动连线状态
$relation = db::name('user_friending_heart')->where("(user1_id=".UID." OR user2_id=".UID.") AND friend_id=$friend_id AND room_id=$room_id AND status!=3")->order('heart_value desc')->find();
$relation = db::name('vs_user_friending_heart')->where("(user1_id=".UID." OR user2_id=".UID.") AND friend_id=$friend_id AND room_id=$room_id AND status!=3")->order('heart_value desc')->find();
if($relation){
db::name('user_friending_heart')->where("(user1_id=".UID." OR user2_id=".UID.") AND friend_id=$friend_id AND room_id=$room_id AND status!=3")->update(['status'=>2]);
db::name('user_friending_heart')->where(['id'=>$relation['id']])->update(['status'=>1]);
db::name('vs_user_friending_heart')->where("(user1_id=".UID." OR user2_id=".UID.") AND friend_id=$friend_id AND room_id=$room_id AND status!=3")->update(['status'=>2]);
db::name('vs_user_friending_heart')->where(['id'=>$relation['id']])->update(['status'=>1]);
}
}

View File

@@ -853,6 +853,17 @@ class Room extends Model
if($user_id != $room_owner['user_id']){
model('api/User')->add_user_visit_log(2,$user_id, $room_id);
}
//交友相关回值
if($room['type_id'] == 7){
$friend = $this->getRoomFriendData($room_id);
//交友状态 交友进行到第几步 1等待邂逅 2心动连线 3牵手良缘
$friend['step'] =$room['step'];
}else{
$friend = null;
}
return ['code' => 1,
'msg' => '成功',
'data' => ['room_info' => $room_info,
@@ -863,7 +874,8 @@ class Room extends Model
'room_auction'=>$roomauction,
'cp_user'=>$cp_users,
'pk_info' => $pk_info,
'song_pit_list' => $song_pit_list
'song_pit_list' => $song_pit_list,
'friend_info' => $friend,
]
];
}
@@ -1994,6 +2006,15 @@ class Room extends Model
$user_info = $this ->get_user_info($room_id,$user_id,$user_pit);
$user_info['is_room_owner'] = ($user_id == $room['user_id']) ? 1 : 0;
//交友相关回值
if($room['type_id'] == 7){
$friend = $this->getRoomFriendData($room_id);
//交友状态 交友进行到第几步 1等待邂逅 2心动连线 3牵手良缘
$friend['step'] =$room['step'];
}else{
$friend = null;
}
return ['code' => 1,
'msg' => '成功',
'data' => ['room_info' => $room_info,
@@ -2004,7 +2025,8 @@ class Room extends Model
'room_auction'=>$roomauction,
'cp_user'=>$cp_users,
'pk_info'=>$pk_info,
'song_pit_list'=>$song_pit_list
'song_pit_list'=>$song_pit_list,
'friend_info' => $friend,
]
];
}
@@ -2467,4 +2489,43 @@ class Room extends Model
return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
}
public function getRoomFriendData($room_id)
{
//交友相关回值
$friend = [];
$friend['friend_id'] = 0;//场次ID
$friend['friend_status'] = 1;//等待邂逅
//查询用户交友表
$friend_info = db::name('vs_user_friending')->where(['room_id' => $room_id])->order('id', 'desc')->find();
$friend['room_on_line_cp'] = 0;
$friend['heart_list'] = [];
$friend['is_preside'] = 0;
$friend['end_time'] = 0;
if($friend_info){
$friend['friend_id'] = $friend_info['id'];
$friend['end_time'] = $friend_info['end_time'];
//获取麦上CP心动值列表
$heart_list = db::name('vs_user_friending_heart')->where(['room_id' => $room_id, 'friend_id' => $friend_info['id'], 'status' => 1])->order('heart_value', 'desc')->limit(3)->select();
if($heart_list){
$heart_list_data = [];
$heart_list = $heart_list->toArray();
$pit_number_array_reverse = [0=>[2,5],1=>[1,6],2=>[3,4]];
foreach($heart_list as $k=>$v){
$heart_list_data[$k]['heartId'] = $v['id'];
$pitnum1 = db::name('vs_room_pit')->where(['room_id' =>$room_id, 'user_id' => $v['user1_id']])->value('pit_number');
$pitnum2 = db::name('vs_room_pit')->where(['room_id' =>$room_id, 'user_id' => $v['user2_id']])->value('pit_number');
if(in_array($pitnum1,$pit_number_array_reverse[$k]) && in_array($pitnum2,$pit_number_array_reverse[$k])){
$heart_list_data[$k]['heartNum'] = $v['heart_value'];
}else{
$heart_list_data[$k]['heartNum'] = 0;
}
}
$friend['heart_list'] =$heart_list_data;
}else{
$friend['heart_list'] = [];
}
}
return $friend;
}
}