用户在线列表

This commit is contained in:
2025-08-29 18:41:24 +08:00
parent f7c1910bfa
commit 286e1d5a6b

View File

@@ -310,7 +310,7 @@ class Friend extends Model
$user_idd = array_diff($user_idd, $host['is_preside_user']); // 从数组中移除 $user_idd = array_diff($user_idd, $host['is_preside_user']); // 从数组中移除
if($user_idd){ if($user_idd){
//插入/更新心动表 //插入/更新心动表
$this->addUserHeart($to_uid,$friend['id'],$sumPrice,$room_id); $this->addUserHeart($uid,$to_uid,$friend['id'],$sumPrice,$room_id);
//送礼产生心动值并计算 判断拉取用户上麦还是换麦 //送礼产生心动值并计算 判断拉取用户上麦还是换麦
//生成新排名 判断抱上麦 还是换麦 //生成新排名 判断抱上麦 还是换麦
$this->pullUserPit($room_id,$friend['id']); $this->pullUserPit($room_id,$friend['id']);
@@ -318,7 +318,7 @@ class Friend extends Model
} }
}else{ }else{
//插入/更新心动表 //插入/更新心动表
$this->addUserHeart($user_idd,$friend['id'],$sumPrice,$room_id); $this->addUserHeart($uid,$user_idd,$friend['id'],$sumPrice,$room_id);
//送礼产生心动值并计算 判断拉取用户上麦还是换麦 //送礼产生心动值并计算 判断拉取用户上麦还是换麦
//生成新排名 判断抱上麦 还是换麦 //生成新排名 判断抱上麦 还是换麦
$this->pullUserPit($room_id,$friend['id']); $this->pullUserPit($room_id,$friend['id']);
@@ -334,7 +334,7 @@ class Friend extends Model
$host[] = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 9])->value('user_id'); $host[] = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 9])->value('user_id');
$host[] = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 10])->value('user_id'); $host[] = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 10])->value('user_id');
$is_preside_user = null; $is_preside_user = [];
$is_preside = 0; $is_preside = 0;
$user_ids = explode(",", $to_uid); $user_ids = explode(",", $to_uid);
foreach ($user_ids as $value) { foreach ($user_ids as $value) {
@@ -415,8 +415,6 @@ class Friend extends Model
!in_array($rel['user2_id'], $usedUsers)) { !in_array($rel['user2_id'], $usedUsers)) {
// 将符合条件的用户对添加到排名列表中 // 将符合条件的用户对添加到排名列表中
$ranking[] = [ $ranking[] = [
// 'left' => $rel['user1_id'],
// 'right' => $rel['user2_id'],
'heart_value' => $rel['heart_value'], 'heart_value' => $rel['heart_value'],
'id' => $rel['id'], 'id' => $rel['id'],
'user1_id' => $rel['user1_id'], 'user1_id' => $rel['user1_id'],
@@ -444,8 +442,6 @@ class Friend extends Model
} }
if(in_array($rel1['user1_id'], $usedUsers)){ if(in_array($rel1['user1_id'], $usedUsers)){
$ranking1[] = [ $ranking1[] = [
// 'left' => $rel1['user1_id'],
// 'right' => $rel1['user2_id'],
'heart_value' => 0, 'heart_value' => 0,
'id' => $rel1['id'], 'id' => $rel1['id'],
'user1_id' => -1, 'user1_id' => -1,
@@ -455,8 +451,6 @@ class Friend extends Model
} }
if(in_array($rel1['user2_id'], $usedUsers)){ if(in_array($rel1['user2_id'], $usedUsers)){
$ranking1[] = [ $ranking1[] = [
// 'left' => $rel1['user1_id'],
// 'right' => $rel1['user2_id'],
'heart_value' => 0, 'heart_value' => 0,
'id' => $rel1['id'], 'id' => $rel1['id'],
'user1_id' => $rel1['user1_id'], 'user1_id' => $rel1['user1_id'],
@@ -481,8 +475,6 @@ class Friend extends Model
} }
if(in_array($rel1['user1_id'], $usedUsers)){ if(in_array($rel1['user1_id'], $usedUsers)){
$ranking2[] = [ $ranking2[] = [
// 'left' => $rel1['user1_id'],
// 'right' => $rel1['user2_id'],
'heart_value' => 0, 'heart_value' => 0,
'id' => $rel1['id'], 'id' => $rel1['id'],
'user1_id' => -1, 'user1_id' => -1,
@@ -492,8 +484,6 @@ class Friend extends Model
} }
if(in_array($rel1['user2_id'], $usedUsers)){ if(in_array($rel1['user2_id'], $usedUsers)){
$ranking2[] = [ $ranking2[] = [
// 'left' => $rel1['user1_id'],
// 'right' => $rel1['user2_id'],
'heart_value' => 0, 'heart_value' => 0,
'id' => $rel1['id'], 'id' => $rel1['id'],
'user1_id' => $rel1['user1_id'], 'user1_id' => $rel1['user1_id'],
@@ -520,7 +510,7 @@ class Friend extends Model
$heart_data = $this->getRanking($room_id,$friend_id); $heart_data = $this->getRanking($room_id,$friend_id);
$pit = []; $pit = [];
$pit_number_array = [2=>5,1=>6,3=>4,5=>2,6=>1,4=>3]; //麦位对应关系 $pit_number_array = [2=>5,1=>6,3=>4,5=>2,6=>1,4=>3]; //麦位对应关系
$pit_number_array_reverse = [0=>2,1=>1,2=>3]; $pit_number_array_reverse = [0=>2,1=>1,2=>3,3=>4,4=>5,5=>6];
if($heart_data){ if($heart_data){
//排麦位 //排麦位
$pit_unique = []; $pit_unique = [];
@@ -529,49 +519,25 @@ class Friend extends Model
if(count($pit) >= 6){ if(count($pit) >= 6){
break; break;
} }
if($value['user1_id'] == -1){ if($value['user1_id'] == -1){
$user_sex = db::name('user')->where('id',$value['user2_id'])->value('sex'); if(!in_array($value['user2_id'],$pit_unique)){
if($user_sex == 2){ $pit[$pit_number_array_reverse[$key]] = $value['user2_id'];
if(!in_array($value['user2_id'],$pit_unique)){
$pit[$pit_number_array_reverse[$key]] = $value['user2_id'];
}
}else{
if(!in_array($value['user2_id'],$pit_unique)){
$pit[$pit_number_array[$pit_number_array_reverse[$key]]] = $value['user2_id'];
}
} }
} }
if($value['user2_id'] == -1){ if($value['user2_id'] == -1){
$user_sex = db::name('user')->where('id',$value['user1_id'])->value('sex'); if(!in_array($value['user1_id'],$pit_unique)){
if($user_sex == 2){ $pit[$pit_number_array_reverse[$key]] = $value['user1_id'];
if(!in_array($value['user1_id'],$pit_unique)){
$pit[$pit_number_array_reverse[$key]] = $value['user1_id'];
}
}else{
if(!in_array($value['user1_id'],$pit_unique)){
$pit[$pit_number_array[$pit_number_array_reverse[$key]]] = $value['user1_id'];
}
} }
} }
if($value['user1_id']!=-1 && $value['user2_id']!=-1){ if($value['user1_id']!=-1 && $value['user2_id']!=-1){
//判断用户1性别 if(!in_array($value['user1_id'],$pit_unique)){
$user1_sex = db::name('user')->where('id',$value['user1_id'])->value('sex'); $pit[$pit_number_array_reverse[$key]] = $value['user1_id'];
if($user1_sex == 2){ }
if(!in_array($value['user1_id'],$pit_unique)){ if(!in_array($value['user2_id'],$pit_unique)){
$pit[$pit_number_array_reverse[$key]] = $value['user1_id']; $pit[$pit_number_array[$pit_number_array_reverse[$key]]] = $value['user2_id'];
}
if(!in_array($value['user2_id'],$pit_unique)){
$pit[$pit_number_array[$pit_number_array_reverse[$key]]] = $value['user2_id'];
}
}else{
if(!in_array($value['user1_id'],$pit_unique)){
$pit[$pit_number_array_reverse[$key]] = $value['user2_id'];
}
if(!in_array($value['user2_id'],$pit_unique)){
$pit[$pit_number_array[$pit_number_array_reverse[$key]]] = $value['user1_id'];
}
} }
} }
@@ -691,14 +657,14 @@ class Friend extends Model
//交友厅游戏开始后送礼后一系列操作 //交友厅游戏开始后送礼后一系列操作
//插入/更新心动表 //插入/更新心动表
public function addUserHeart($user_id,$friend_id,$value,$room_id){ public function addUserHeart($uid,$user_id,$friend_id,$value,$room_id){
//给多个用户送礼 //给多个用户送礼
$user_ids = explode(",", $user_id); $user_ids = explode(",", $user_id);
$heart_value = $value;//心动值 $heart_value = $value;//心动值
for ($i = 0; $i < count($user_ids); $i++) { for ($i = 0; $i < count($user_ids); $i++) {
// 处理用户ID顺序 // 处理用户ID顺序
$user1 = min(UID, $user_ids[$i]); $user1 = min($uid, $user_ids[$i]);
$user2 = max(UID, $user_ids[$i]); $user2 = max($uid, $user_ids[$i]);
// 更新心动关系表 // 更新心动关系表
$relation = db::name('vs_user_friending_heart')->where([ $relation = db::name('vs_user_friending_heart')->where([
'user1_id' => $user1, 'user1_id' => $user1,
@@ -723,10 +689,10 @@ class Friend extends Model
]); ]);
} }
} }
//修改用户动连线状态 //修改用户动连线状态
$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(); $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){ if($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")->update(['status'=>2]); 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]); db::name('vs_user_friending_heart')->where(['id'=>$relation['id']])->update(['status'=>1]);
} }