保持心跳检测

This commit is contained in:
2025-12-06 18:37:19 +08:00
parent bbcb4a7a8c
commit 828a29d0ee
5 changed files with 37 additions and 22 deletions

View File

@@ -653,11 +653,12 @@ class Room extends Model
//麦位信息
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
->where(['a.room_id' => $room['id'],'a.status' => 1])
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code,b.is_online')
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code')
->order('a.pit_number asc')->select();
foreach ($pit_list as &$value) {
$value['charm'] = 0;
$value['dress'] = '';
$value['is_online'] = 2;
if (isset($value['user_id']) && $value['user_id'] > 0) {
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room['id'], 'user_id' => $value['user_id']])->value('charm');
$value['dress'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 1);
@@ -667,6 +668,7 @@ class Room extends Model
$value['mic_cycle'] = model('api/Decorate')->user_decorate_detail($value['user_id'],3);
$value['nobility_image'] = $Nobility['play_image'];
$value['nickname_color'] = $Nobility['nick_name_color'];
$value['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $value['user_id'],'room_id' => $room_id])->value('is_online');
}
}
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room['id'],'user_id' => $user_id])->find();
@@ -735,8 +737,6 @@ class Room extends Model
$tet['user_id'] = $user_id;
$tet['type'] = 1;
model('api/Chat')->sendMsg(1058,$room_id,$tet);
//进入房间查看是否在房间内 修正数据
db::name('user')->where('id', $user_id)->update(['is_online' => 1]);
$room['is_use_code'] = 0;
$liang = model('api/Decorate')->user_decorate_detail($room['id'],7);
@@ -1079,11 +1079,12 @@ class Room extends Model
//麦位信息
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
->where(['a.room_id' => $room_id,'a.status' => 1])
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code,b.is_online')
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code')
->order('a.pit_number asc')->select();
foreach ($pit_list as &$value) {
$value['charm'] = 0;
$value['dress'] = '';
$value['is_online'] = 2;
if (isset($value['user_id']) && $value['user_id'] > 0) {
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $value['user_id']])->value('charm') ?? 0;
$value['dress'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 1);
@@ -1093,6 +1094,7 @@ class Room extends Model
$value['mic_cycle'] = model('api/Decorate')->user_decorate_detail($value['user_id'],3);
$value['nobility_image'] = $Nobility['play_image'];
$value['nickname_color'] = $Nobility['nick_name_color'];
$value['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $value['user_id'],'room_id' => $room_id])->value('is_online');
}
}
$song_pit_list = db::name('vs_room_pit_simulate')->where(['room_id' => $room_id])->select();
@@ -1139,10 +1141,11 @@ class Room extends Model
{
//房间正在拍的信息
$auction = db::name('vs_room_auction')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
->field('a.auction_id,a.user_id,b.nickname,b.avatar,b.sex,b.user_code,a.auction_type,a.relation_id,a.gift_id,a.gift_price,a.time_day,a.duration,b.is_online')
->field('a.auction_id,a.user_id,b.nickname,b.avatar,b.sex,b.user_code,a.auction_type,a.relation_id,a.gift_id,a.gift_price,a.time_day,a.duration,')
->where(['a.room_id' => $room_id,'a.status' => 2])->find();
// var_dump($auction);exit;
if($auction){
$auction['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $auction['user_id'],'room_id' => $room_id])->value('is_online');
$auction['dress'] = model('api/Decorate')->user_decorate_detail($auction['user_id'], 1);
$auction['relation_name'] = db::name('vs_relation')->where('id',$auction['relation_id'])->value('name');
$auction['relation_icon'] = db::name('vs_relation')->where('id',$auction['relation_id'])->value('icon');
@@ -1170,7 +1173,8 @@ class Room extends Model
$user_pit['pit_number'] = 0;
}else{
$auction_list = null;
$users = db::name('user')->where('id',$catdc)->field('id as user_id,nickname,avatar,sex,user_code,is_online')->find();
$users = db::name('user')->where('id',$catdc)->field('id as user_id,nickname,avatar,sex,user_code')->find();
$users['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $catdc,'room_id' => $room_id])->value('is_online');
$users['dress'] = model('api/Decorate')->user_decorate_detail($catdc, 1);
$users['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $catdc])->value('charm') ?? 0;
$auction_user = $users;
@@ -1190,6 +1194,7 @@ class Room extends Model
foreach ($pit_list as &$value) {
$value['charm'] = 0;
$value['dress'] = '';
$value['is_online'] = 2;
if (isset($value['user_id']) && $value['user_id'] > 0) {
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $value['user_id']])->value('charm') ?? 0;
$value['dress'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 1);
@@ -1202,6 +1207,7 @@ class Room extends Model
$value['mic_cycle'] = model('api/Decorate')->user_decorate_detail($value['user_id'],3);
$value['nobility_image'] = $Nobility['play_image'];
$value['nickname_color'] = $Nobility['nick_name_color'];
$value['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $value['user_id'],'room_id' => $room_id])->value('is_online');
}
}
return ['auction_list' => $auction_list,'pit_list' => $pit_list,'auction_user' => $auction_user,'user_pit' => $user_pit];
@@ -2108,10 +2114,11 @@ class Room extends Model
//麦位信息
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
->where(['a.room_id' => $room['id'],'a.status' => 1])
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code,b.is_online')->order('a.pit_number asc')->select();
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code')->order('a.pit_number asc')->select();
foreach ($pit_list as &$value) {
$value['charm'] = 0;
$value['dress'] = '';
$value['is_online'] = 2;
if (isset($value['user_id']) && $value['user_id'] > 0) {
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room['id'], 'user_id' => $value['user_id']])->value('charm');
$value['dress'] = model('Decorate')->user_decorate_detail($value['user_id'], 1);
@@ -2121,6 +2128,7 @@ class Room extends Model
$value['mic_cycle'] = model('api/Decorate')->user_decorate_detail($value['user_id'],3);
$value['nobility_image'] = $Nobility['play_image'];
$value['nickname_color'] = $Nobility['nick_name_color'];
$value['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $value['user_id'],'room_id' => $room_id])->value('is_online');
}
}
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room['id'],'user_id' => $user_id])->find();
@@ -2787,7 +2795,7 @@ class Room extends Model
foreach ($user as $v){
$data[] = [
'user_id' => $v,
'is_online' => db::name('user')->where('id',$v)->value('is_online'),
'is_online' => db::name('vs_room_visitor')->where(['user_id' => $v,'room_id' => $room_id])->value('is_online'),
];
}
return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
@@ -2831,8 +2839,8 @@ class Room extends Model
if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
$online_number++;
}else{
$is_online = db::name('user')->where(['id' => $v['user_id']])->value('is_online');
if($is_online){
$is_online = db::name('vs_room_visitor')->where(['user_id' => $v,'room_id' => $room_id])->value('is_online');
if($is_online == 1){
$online_number++;
}
}

View File

@@ -57,7 +57,8 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
}
// $nickname = model('User')->where(['id' => $user_id])->value('nickname');
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
@@ -365,7 +366,8 @@ class RoomPit extends Model
if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
}
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
@@ -424,7 +426,8 @@ class RoomPit extends Model
if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
}
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
@@ -726,7 +729,8 @@ class RoomPit extends Model
continue;
}
//聊天室推送系统消息
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1);
@@ -771,7 +775,8 @@ class RoomPit extends Model
// }
Cache::set('auction_user_'.$room_id,$value);
//聊天室推送系统消息
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1);
@@ -848,7 +853,8 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
}
//制造上麦信息
$FromUserInfo = db::name('user')->where('id',$uid)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$uid)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($uid);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($uid);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($uid,1);
@@ -1066,7 +1072,8 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
}
//制造上麦信息
$FromUserInfo = db::name('user')->where('id',$accept_user_id)->field('id as user_id,nickname,avatar,sex,market_value,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$accept_user_id)->field('id as user_id,nickname,avatar,sex,market_value')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($accept_user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($accept_user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($accept_user_id,1);
@@ -1121,7 +1128,8 @@ class RoomPit extends Model
if(Cache::get('auction_user_'.$room_id)){
return ['code' => 0, 'msg' => '拍卖位上已有人,请先抱对方下麦', 'data' => null];
}else{
$FromUserInfo = db::name('user')->where('id',$accept_user_id)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$FromUserInfo = db::name('user')->where('id',$accept_user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
$FromUserInfo['icon'][0] = model('api/UserData')->user_wealth_icon($accept_user_id);//财富图标
$FromUserInfo['icon'][1] = model('api/UserData')->user_charm_icon($accept_user_id);//魅力图标
$FromUserInfo['dress'] = model('api/Decorate')->user_decorate_detail($accept_user_id,1);

View File

@@ -516,7 +516,7 @@ class Sign extends Model
* 发送麦位变更消息
*/
private function sendPitChangeMessage($user_id, $room_id, $from_pit, $to_pit){
$userInfo = db::name('user')->where('id', $user_id)->field('id as user_id,nickname,avatar,sex,is_online')->find();
$userInfo = db::name('user')->where('id', $user_id)->field('id as user_id,nickname,avatar,sex')->find();
$userInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$userInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$userInfo['dress'] = model('Decorate')->user_decorate_detail($user_id, 1);
@@ -526,6 +526,7 @@ class Sign extends Model
$userInfo['mic_cycle'] = model('api/Decorate')->user_decorate_detail($user_id, 3);
$userInfo['nobility_image'] = $nobility['play_image'];
$userInfo['nickname_color'] = $nobility['nick_name_color'];
$userInfo['is_online'] = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->value('is_online');
if($to_pit == 1){
$pit_text = '签约麦';

View File

@@ -239,7 +239,7 @@ class User extends Model
$list = $model->field('a.follow_id,a.createtime,b.nickname,b.avatar,b.sex,b.user_code')->order('a.id desc')->page($page, $page_limit)->select();
foreach ($list as $k => &$v) {
$v['user_id'] = $v['follow_id'];
$v['is_online'] = 0;
$v['is_online'] = 2;
$v['is_follow'] = 1;
// $is_follow = db::name('user_follow')->where(['user_id' => $v['follow_id'], 'follow_id' => $uid])->find();
// if ($is_follow) {

View File

@@ -45,7 +45,6 @@ class RoomPan
->find();
if($is_online){//现在 在房间内
if(time() - $value['updatetime'] >= 180){//三分钟没有心跳
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>2]);
if($is_online['is_online'] == 2){//之前就是离开
continue;
}else{//之前就是在线则改为离开
@@ -61,7 +60,6 @@ class RoomPan
continue;
}else{//之前就是离开则改为在线
db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>1,'updatetime' => time()]);
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>1]);
$text['text'] = '回到房间';
$text['user_id'] = $value['user_id'];
$text['type'] = 1;