进入房间 和room_info lit_list里面加end_time
This commit is contained in:
@@ -1193,6 +1193,10 @@ class Room extends Model
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
case 11://酒吧房
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break ;
|
||||
}
|
||||
|
||||
//进入房间保持心跳
|
||||
@@ -1362,6 +1366,220 @@ class Room extends Model
|
||||
}
|
||||
|
||||
|
||||
//房间信息
|
||||
public function room_info($user_id, $room_id)
|
||||
{
|
||||
//房间基础信息先从缓存获取
|
||||
$room = json_decode(Cache::get('room_info_' . $room_id), true);
|
||||
|
||||
if(!$room){
|
||||
$room = db::name('vs_room')->where(['id' => $room_id])->find();
|
||||
$room['is_use_code'] = 0;
|
||||
$liang = model('api/Decorate')->user_decorate_detail($room_id,7);
|
||||
if($liang != $room['room_number']){
|
||||
$room['is_use_code'] = 1;
|
||||
$room['room_number'] = $liang;
|
||||
}
|
||||
Cache::set('room_info_' . $room_id, json_encode($room), 7200);
|
||||
}
|
||||
|
||||
//房主信息
|
||||
//先从缓存中获取
|
||||
$room_owner = json_decode(Cache::get('room_owner_' . $room_id),true);
|
||||
if(!$room_owner){
|
||||
$room_owner = db::name('user')->where('id', $room['user_id'])->field('id as user_id,user_code,sex,nickname,avatar')->find();
|
||||
$room_owner['user_code'] = model('api/Decorate')->user_decorate_detail($room['user_id'],6);
|
||||
Cache::set('room_owner_' . $room_id, json_encode($room_owner), 7200);
|
||||
}
|
||||
|
||||
$room_type = $this->get_room_type($room_id);
|
||||
if($room_type == 0){
|
||||
return ['code' => 0, 'msg' => '当前房间类型错误,请联系管理员', 'data' => ''];
|
||||
}
|
||||
|
||||
$cp_users = null;//CP用户信息
|
||||
$friend = null;//交友信息
|
||||
$singer_info = null;//点唱房内的演唱信息
|
||||
$sign_info = null;//签约信息
|
||||
//K歌模式下获取歌曲信息
|
||||
$song_pit_list = null;
|
||||
$song_list = null;
|
||||
$next_song_info = null;
|
||||
//拍卖模式下获取当前竞拍信息
|
||||
$roomauction = null;
|
||||
$xlh_info['xlh_info'] = model('api/BlindBoxTurntableGift')->get_user_xlh_info($room_id);
|
||||
$pk_info = $this->room_pk($room_id,$room_type);
|
||||
$user_pit = 0;
|
||||
$pit_list = [];
|
||||
|
||||
switch ($room_type) {
|
||||
case 1:
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
case 2://练歌房(声网点歌)
|
||||
$song = $this->get_song_info($room_id,$user_id);
|
||||
$song_pit_list = $song['song_pit_list'];
|
||||
$song_list = $song['song_user_info'];
|
||||
$next_song_info = $song['nextInfo'];
|
||||
$user_pit = $song['user_pit'];
|
||||
$pit_list = $song['pit_list'];
|
||||
break;
|
||||
case 4:
|
||||
case 3://亲密拍,真爱拍
|
||||
$roomauction = $this->auction_room($room_id,$user_id);
|
||||
$pit_list = $roomauction['pit_list'];
|
||||
$user_pit = $roomauction['user_pit'];
|
||||
break;
|
||||
case 6://私密房
|
||||
$cp_users = $this->cp_room($room_id,$user_id);
|
||||
$room_name = '';
|
||||
if($cp_users['user_id'] == $user_id){
|
||||
$room_name = db::name('user')->where('id', $cp_users['user_id1'])->value('nickname');
|
||||
}
|
||||
if($cp_users['user_id1'] == $user_id){
|
||||
$room_name = db::name('user')->where('id', $cp_users['user_id'])->value('nickname');
|
||||
}
|
||||
$room['room_name'] = '我 ❤️ '.$room_name;
|
||||
break;
|
||||
case 7://互娱房
|
||||
$friend = $this->getRoomFriendData($room_id);
|
||||
//交友状态 交友进行到第几步 1等待邂逅 2心动连线 3牵手良缘
|
||||
$friend['step'] = db::name('vs_room')->where('id', $room_id)->value('step');
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
case 9://点唱房内的演唱信息
|
||||
$singer_info = $this->getSingInfo($room_id);
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
case 10://签约房间信息
|
||||
$room_sign = db::name('vs_room_sign')->where(['room_id' => $room_id,'sign_type' => 1])->order('id desc')->find();
|
||||
if($room_sign){
|
||||
$sign_info = [
|
||||
'sign_id' => $room_sign['id'],
|
||||
'sign_status' => $room_sign['sign_type'],
|
||||
'sign_day' => $room_sign['sign_day'],
|
||||
'current_body_value' => db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value'),
|
||||
'end_time' => $room_sign['end_time']
|
||||
];
|
||||
}else{
|
||||
$sign_info = [
|
||||
'sign_id' => 0,
|
||||
'sign_status' => 0,
|
||||
'sign_day' => 0,
|
||||
'current_body_value' => 0,
|
||||
'end_time' => 0
|
||||
];
|
||||
}
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
}
|
||||
|
||||
//头条
|
||||
$headline = db::name('vs_headline')->where('end_time' , '>', time())->where('is_now', 1)->find();
|
||||
$headline_data = null;
|
||||
if($headline){
|
||||
$headline_data = $headline;
|
||||
$headline_data['nickname'] = db::name('user')->where('id', $headline['user_id'])->value('nickname');
|
||||
$headline_data['avatar'] = db::name('user')->where('id', $headline['user_id'])->value('avatar');
|
||||
}
|
||||
if($room['label_id'] == 3){
|
||||
$label_id = 2;
|
||||
}elseif ($room['label_id'] == 4){
|
||||
$label_id = 1;
|
||||
}else{
|
||||
$label_id = $room['label_id'];
|
||||
}
|
||||
|
||||
//上次的PK参数
|
||||
if($room['last_pk_room_id'] > 0){
|
||||
$last_pk_room_id = $room['last_pk_room_id'];
|
||||
}else{
|
||||
$last_pk_info = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->order('pk_id', 'desc')->find();
|
||||
if($last_pk_info){
|
||||
$last_pk_room_id = $last_pk_info['room_id_b'];
|
||||
}else{
|
||||
$last_pk_info1 = db::name('vs_room_pk')->where(['room_id_b' => $room_id])->order('pk_id', 'desc')->find();
|
||||
if($last_pk_info1){
|
||||
$last_pk_room_id = $last_pk_info1['room_id_a'];
|
||||
}else{
|
||||
$last_pk_room_id = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//酒吧房撩他礼物金币
|
||||
$liao_ta_gif = model('api/BarRoom')->get_liao_ta_gift();
|
||||
$liao_ta_coin = $liao_ta_gif['gift_price']??0;
|
||||
|
||||
//房间信息
|
||||
$room_info = [
|
||||
'room_id' => $room['id'],
|
||||
'is_use_code' => $room['is_use_code'],
|
||||
'room_number' => $room['room_number'],
|
||||
'room_name' => $room['room_name'],
|
||||
'room_cover' => $room['room_cover'],
|
||||
'room_intro' => $room['room_intro'],
|
||||
'type_id' => $room['type_id'],
|
||||
'type_name' => db::name('vs_room_type')->where('id', $room['type_id'])->value('type_name'),
|
||||
'user_id' => $room['user_id'],
|
||||
'label_id' => $label_id,
|
||||
'label_icon' => db::name('vs_room_label')->where('id', $room['label_id'])->value('label_icon_room'),
|
||||
'room_background' => $room['room_background'],
|
||||
'hot_value' => $room['today_hot_value'],
|
||||
'chatrooms' => 'room'.$room['id'],
|
||||
'pit_list' => $pit_list,
|
||||
'room_up_pit_type'=>$room['room_up_pit_type'],
|
||||
//正在演唱的歌曲用户信息
|
||||
'song_user_info' => $song_list,
|
||||
'online_number' => db::name('vs_room_visitor')->where(['room_id' => $room['id'],'is_online'=>1])->count(),
|
||||
'head_line'=>$headline_data,
|
||||
'is_pk' => $room['is_pk'],//1-默认接受PK,2不接受',
|
||||
'last_pk_room_id' => $last_pk_room_id,
|
||||
'queue_number' => db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count(),
|
||||
'sexy_coin' => $liao_ta_coin
|
||||
];
|
||||
|
||||
//当前用户信息
|
||||
$user_info = $this ->get_user_info($room_id,$user_id,$user_pit);
|
||||
$user_info['is_room_owner'] = ($user_id == $room['user_id']) ? 1 : 0;
|
||||
|
||||
$open_time = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('open_time');
|
||||
if($open_time > 0){
|
||||
if($open_time <= time()){
|
||||
$hour_open = 1;//开启
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
|
||||
return ['code' => 1,
|
||||
'msg' => '成功',
|
||||
'data' => ['room_info' => $room_info,
|
||||
'room_owner' => $room_owner,
|
||||
'user_info' => $user_info,
|
||||
'song_user_info' => $song_list,
|
||||
'nextInfo' => $next_song_info,
|
||||
'room_auction'=>$roomauction,
|
||||
'cp_user'=>$cp_users,
|
||||
'pk_info'=>$pk_info,
|
||||
'song_pit_list'=>$song_pit_list,
|
||||
'friend_info' => $friend,
|
||||
'gift_cycle' => $xlh_info,
|
||||
'hour_ranking_open' => $hour_open,
|
||||
'singer_info' => $singer_info,
|
||||
'sign_info' => $sign_info
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
//房间内当前用户信息
|
||||
public function get_user_info($room_id,$user_id,$user_pit,$is_join = 0)
|
||||
{
|
||||
@@ -1676,7 +1894,7 @@ 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')
|
||||
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,a.end_time,b.nickname,b.avatar,b.sex,b.user_code')
|
||||
->order('a.pit_number asc')->select();
|
||||
foreach ($pit_list as &$value) {
|
||||
$value['charm'] = 0;
|
||||
@@ -2919,504 +3137,6 @@ class Room extends Model
|
||||
}
|
||||
|
||||
|
||||
//房间信息【1.6废弃】
|
||||
public function room_infos($user_id, $room_id)
|
||||
{
|
||||
if(!$room_id){
|
||||
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
$user_in_room = db::name('vs_room_visitor')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
// if(!$user_in_room){
|
||||
//// return ['code' => 0, 'msg' => '您已不在此房间', 'data' => null];
|
||||
// return ['code' => 0, 'msg' => '', 'data' => null];
|
||||
// }
|
||||
$room = db::name('vs_room')->where(['id' => $room_id])->find();
|
||||
$song_list = null;
|
||||
$next_song_info = null;
|
||||
$song_pit_list = null;
|
||||
$user_pit = 0;
|
||||
$pit_list = null;
|
||||
$roomauction = null;
|
||||
$cp_users = null;
|
||||
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7 || $room['type_id'] == 8 || $room['type_id'] == 9 || $room['type_id'] == 10) {
|
||||
if($room['label_id'] == 1 || $room['label_id'] == 5 || $room['label_id'] == 6 || $room['label_id'] == 7){
|
||||
//麦位信息
|
||||
$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')->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);
|
||||
$value['user_code'] = model('Decorate')->user_decorate_detail($value['user_id'], 6);
|
||||
$Nobility = model('api/Nobility')->getUserNobilityInfo($value['user_id']);
|
||||
// $value['nobility_info'] = $Nobility;
|
||||
$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();
|
||||
}elseif($room['label_id'] == 2){
|
||||
$song = $this->get_song_info($room_id,$user_id);
|
||||
$song_list = $song['song_user_info'];
|
||||
$next_song_info = $song['nextInfo'];
|
||||
$pit_list = $song['pit_list'];
|
||||
$user_pit = $song['user_pit'];
|
||||
$song_pit_list = $song['song_pit_list'];
|
||||
}
|
||||
}elseif($room['type_id'] == 2){
|
||||
$roomauction = $this->auction_room($room_id,$user_id);
|
||||
$pit_list = $roomauction['pit_list'];
|
||||
$user_pit = $roomauction['user_pit'];
|
||||
}elseif($room['type_id'] == 6){
|
||||
//查看房间时间是否已到期
|
||||
$room_time = db::name('vs_room_cp_movie')->where(['room_id' => $room['id']])->value('time_day');
|
||||
if($room_time <= time()){
|
||||
return ['code' => 0, 'msg' => 'cp房间已到期', 'data' => ''];
|
||||
}
|
||||
$cp_users = db::name('vs_room_cp_movie')->alias('a')
|
||||
->join('user b', 'a.user_id = b.id', 'left')
|
||||
->join('user c', 'a.user_id1 = c.id', 'left')
|
||||
->where(['room_id' => $room['id'],'a.status' => 1])
|
||||
->field('a.time_day,a.cp_id,a.user_id,a.user_id1,b.nickname,c.nickname as nickname1,b.avatar,c.avatar as avatar1,b.user_code,c.user_code as user_code1')
|
||||
->find();
|
||||
$cp_users['dress'] = model('Decorate')->user_decorate_detail($cp_users['user_id'],1);
|
||||
$cp_users['dress1'] = model('Decorate')->user_decorate_detail($cp_users['user_id1'],1);
|
||||
|
||||
if($cp_users['user_id'] == $user_id){
|
||||
$room_name = db::name('user')->where('id', $cp_users['user_id1'])->value('nickname');
|
||||
}
|
||||
if($cp_users['user_id1'] == $user_id){
|
||||
$room_name = db::name('user')->where('id', $cp_users['user_id'])->value('nickname');
|
||||
}
|
||||
$room['room_name'] = '我 ❤️ '.$room_name;
|
||||
}
|
||||
|
||||
$room['is_use_code'] = 0;
|
||||
$liang = model('Decorate')->user_decorate_detail($room['id'],7);
|
||||
if($liang != $room['room_number']){
|
||||
$room['is_use_code'] = 1;
|
||||
$room['room_number'] = $liang;
|
||||
}
|
||||
|
||||
//头条
|
||||
$headline = db::name('vs_headline')->where('end_time' , '>', time())->where('is_now', 1)->find();
|
||||
$headline_data = null;
|
||||
if($headline){
|
||||
$headline_data = $headline;
|
||||
$headline_data['nickname'] = db::name('user')->where('id', $headline['user_id'])->value('nickname');
|
||||
$headline_data['avatar'] = db::name('user')->where('id', $headline['user_id'])->value('avatar');
|
||||
}
|
||||
if($room['label_id'] == 3){
|
||||
$label_id = 2;
|
||||
}elseif ($room['label_id'] == 4){
|
||||
$label_id = 1;
|
||||
}else{
|
||||
$label_id = $room['label_id'];
|
||||
}
|
||||
|
||||
//判断当前房间是否正在pk
|
||||
//pk信息
|
||||
$pk_info = null;
|
||||
$is_pk = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->where(['status' => ['in',[2,3,4]]])
|
||||
->field('pk_id,create_user_id,receive_user_id,room_id_b,create_value_a,receive_value_b,pk_times,start_time,status,updatetime')->find();
|
||||
if($is_pk){
|
||||
$pk_info['pk_room_id'] = $is_pk['room_id_b'];//对方房间id
|
||||
$pk_info['invite_pk_user_id'] = $is_pk['create_user_id'];//发起pk用户id
|
||||
$pk_info['receive_pk_user_id'] = $is_pk['receive_user_id'];//接受者用户id
|
||||
$pk_info['pk_id'] = $is_pk['pk_id'];//pkid
|
||||
$pk_info['pk_end_times'] = $is_pk['start_time'] + $is_pk['pk_times'] * 60;//pk结束时间
|
||||
$pk_info['my_room_value'] = $is_pk['create_value_a'];//自己房间的值
|
||||
$pk_info['pk_room_value'] = $is_pk['receive_value_b'];//对方房间的值
|
||||
$pk_info['pk_part'] = $is_pk['status'];
|
||||
if($is_pk['status'] == 2){
|
||||
$pk_info['pk_end_times'] = $is_pk['updatetime'] + 300;
|
||||
}elseif($is_pk['status'] == 3){
|
||||
$pk_info['pk_end_times'] = $is_pk['start_time'] + $is_pk['pk_times'] * 60;
|
||||
}elseif($is_pk['status'] == 4){
|
||||
$pk_info['pk_end_times'] = $is_pk['updatetime'] + 300;
|
||||
if($is_pk['create_value_a'] > $is_pk['receive_value_b']){
|
||||
$pk_info['create_type'] = 1;//赢
|
||||
$pk_info['receive_type'] = 0;//输
|
||||
}elseif ($is_pk['create_value_a'] = $is_pk['receive_value_b']){
|
||||
$pk_info['create_type'] = 2;//平局
|
||||
$pk_info['receive_type'] = 2;//平局
|
||||
}else{
|
||||
$pk_info['create_type'] = 0;//输
|
||||
$pk_info['receive_type'] = 1;//赢
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$is_pk = db::name('vs_room_pk')->where(['room_id_b' => $room_id])->where(['status' => ['in',[2,3,4]]])
|
||||
->field('pk_id,create_user_id,receive_user_id,room_id_a,create_value_a,receive_value_b,pk_times,start_time,status,updatetime')->find();
|
||||
if($is_pk){
|
||||
$pk_info['pk_room_id'] = $is_pk['room_id_a'];
|
||||
$pk_info['invite_pk_user_id'] = $is_pk['create_user_id'];
|
||||
$pk_info['receive_pk_user_id'] = $is_pk['receive_user_id'];//接受者用户id
|
||||
$pk_info['pk_id'] = $is_pk['pk_id'];
|
||||
$pk_info['my_room_value'] = $is_pk['receive_value_b'];
|
||||
$pk_info['pk_room_value'] = $is_pk['create_value_a'];
|
||||
$pk_info['pk_part'] = $is_pk['status'];
|
||||
if($is_pk['status'] == 2){
|
||||
$pk_info['pk_end_times'] = $is_pk['updatetime'] + 300;
|
||||
}elseif($is_pk['status'] == 3){
|
||||
$pk_info['pk_end_times'] = $is_pk['start_time'] + $is_pk['pk_times'] * 60;
|
||||
}elseif($is_pk['status'] == 4){
|
||||
$pk_info['pk_end_times'] = $is_pk['updatetime'] + 300;
|
||||
if($is_pk['create_value_a'] > $is_pk['receive_value_b']){
|
||||
$pk_info['create_type'] = 1;//赢
|
||||
$pk_info['receive_type'] = 0;//输
|
||||
}elseif ($is_pk['create_value_a'] = $is_pk['receive_value_b']){
|
||||
$pk_info['create_type'] = 2;//平局
|
||||
$pk_info['receive_type'] = 2;//平局
|
||||
}else{
|
||||
$pk_info['create_type'] = 0;//输
|
||||
$pk_info['receive_type'] = 1;//赢
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//上次的PK参数
|
||||
if($room['last_pk_room_id'] > 0){
|
||||
$last_pk_room_id = $room['last_pk_room_id'];
|
||||
}else{
|
||||
$last_pk_info = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->order('pk_id', 'desc')->find();
|
||||
if($last_pk_info){
|
||||
$last_pk_room_id = $last_pk_info['room_id_b'];
|
||||
}else{
|
||||
$last_pk_info1 = db::name('vs_room_pk')->where(['room_id_b' => $room_id])->order('pk_id', 'desc')->find();
|
||||
if($last_pk_info1){
|
||||
$last_pk_room_id = $last_pk_info1['room_id_a'];
|
||||
}else{
|
||||
$last_pk_room_id = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//点唱房内的演唱信息
|
||||
$singer_info = $this->getSingInfo($room_id);
|
||||
|
||||
//酒吧房撩他礼物金币
|
||||
$liao_ta_gif = model('api/BarRoom')->get_liao_ta_gift();
|
||||
$liao_ta_coin = $liao_ta_gif['gift_price']??0;
|
||||
|
||||
//房间信息
|
||||
$room_info = [
|
||||
'room_id' => $room['id'],
|
||||
'is_use_code' => $room['is_use_code'],
|
||||
'room_number' => $room['room_number'],
|
||||
'room_name' => $room['room_name'],
|
||||
'room_cover' => $room['room_cover'],
|
||||
'room_intro' => $room['room_intro'],
|
||||
'type_id' => $room['type_id'],
|
||||
'type_name' => db::name('vs_room_type')->where('id', $room['type_id'])->value('type_name'),
|
||||
'user_id' => $room['user_id'],
|
||||
'label_id' => $label_id,
|
||||
'label_icon' => db::name('vs_room_label')->where('id', $room['label_id'])->value('label_icon_room'),
|
||||
'room_background' => $room['room_background'],
|
||||
'hot_value' => $room['today_hot_value'],
|
||||
'chatrooms' => 'room'.$room['id'],
|
||||
'pit_list' => $pit_list,
|
||||
'room_up_pit_type'=>$room['room_up_pit_type'],
|
||||
//正在演唱的歌曲用户信息
|
||||
'song_user_info' => $song_list,
|
||||
'online_number' => db::name('vs_room_visitor')->where(['room_id' => $room['id'],'is_online'=>1])->count(),
|
||||
'head_line'=>$headline_data,
|
||||
'is_pk' => $room['is_pk'],//1-默认接受PK,2不接受',
|
||||
'last_pk_room_id' => $last_pk_room_id,
|
||||
'queue_number' => db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count()
|
||||
];
|
||||
//房主信息
|
||||
$room_owner = db::name('user')->where('id', $room['user_id'])->field('id as user_id,user_code,sex,nickname,avatar')->find();
|
||||
$room_owner['user_code'] = model('Decorate')->user_decorate_detail($room['user_id'],6);
|
||||
|
||||
//当前用户信息
|
||||
$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;
|
||||
}
|
||||
|
||||
$xlh_info['xlh_info'] = model('api/BlindBoxTurntableGift')->get_user_xlh_info($room_id);
|
||||
$open_time = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('open_time');
|
||||
if($open_time > 0){
|
||||
if($open_time <= time()){
|
||||
$hour_open = 1;//开启
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
|
||||
//签约房间信息
|
||||
if($room_info['type_id'] != 10){
|
||||
$sign_info = null;
|
||||
}else{
|
||||
$room_sign = db::name('vs_room_sign')->where('room_id', $room_id)->order('id desc')->find();
|
||||
if($room_sign){
|
||||
$sign_info = [
|
||||
'sign_status' => $room_sign['sign_type'],
|
||||
'sign_day' => $room_sign['sign_day'],
|
||||
'current_body_value' => db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value'),
|
||||
'end_time' => $room_sign['end_time']
|
||||
];
|
||||
}else{
|
||||
$sign_info = [
|
||||
'sign_status' => 0,
|
||||
'sign_day' => 0,
|
||||
'current_body_value' => 0,
|
||||
'end_time' => 0
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return ['code' => 1,
|
||||
'msg' => '成功',
|
||||
'data' => ['room_info' => $room_info,
|
||||
'room_owner' => $room_owner,
|
||||
'user_info' => $user_info,
|
||||
'song_user_info' => $song_list,
|
||||
'nextInfo' => $next_song_info,
|
||||
'room_auction'=>$roomauction,
|
||||
'cp_user'=>$cp_users,
|
||||
'pk_info'=>$pk_info,
|
||||
'song_pit_list'=>$song_pit_list,
|
||||
'friend_info' => $friend,
|
||||
'gift_cycle' => $xlh_info,
|
||||
'hour_ranking_open' => $hour_open,
|
||||
'singer_info' => $singer_info,
|
||||
'sign_info' => $sign_info
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
//房间信息
|
||||
public function room_info($user_id, $room_id)
|
||||
{
|
||||
//房间基础信息先从缓存获取
|
||||
$room = json_decode(Cache::get('room_info_' . $room_id), true);
|
||||
|
||||
if(!$room){
|
||||
$room = db::name('vs_room')->where(['id' => $room_id])->find();
|
||||
$room['is_use_code'] = 0;
|
||||
$liang = model('api/Decorate')->user_decorate_detail($room_id,7);
|
||||
if($liang != $room['room_number']){
|
||||
$room['is_use_code'] = 1;
|
||||
$room['room_number'] = $liang;
|
||||
}
|
||||
Cache::set('room_info_' . $room_id, json_encode($room), 7200);
|
||||
}
|
||||
|
||||
//房主信息
|
||||
//先从缓存中获取
|
||||
$room_owner = json_decode(Cache::get('room_owner_' . $room_id),true);
|
||||
if(!$room_owner){
|
||||
$room_owner = db::name('user')->where('id', $room['user_id'])->field('id as user_id,user_code,sex,nickname,avatar')->find();
|
||||
$room_owner['user_code'] = model('api/Decorate')->user_decorate_detail($room['user_id'],6);
|
||||
Cache::set('room_owner_' . $room_id, json_encode($room_owner), 7200);
|
||||
}
|
||||
|
||||
$room_type = $this->get_room_type($room_id);
|
||||
if($room_type == 0){
|
||||
return ['code' => 0, 'msg' => '当前房间类型错误,请联系管理员', 'data' => ''];
|
||||
}
|
||||
|
||||
$cp_users = null;//CP用户信息
|
||||
$friend = null;//交友信息
|
||||
$singer_info = null;//点唱房内的演唱信息
|
||||
$sign_info = null;//签约信息
|
||||
//K歌模式下获取歌曲信息
|
||||
$song_pit_list = null;
|
||||
$song_list = null;
|
||||
$next_song_info = null;
|
||||
//拍卖模式下获取当前竞拍信息
|
||||
$roomauction = null;
|
||||
$xlh_info['xlh_info'] = model('api/BlindBoxTurntableGift')->get_user_xlh_info($room_id);
|
||||
$pk_info = $this->room_pk($room_id,$room_type);
|
||||
$user_pit = 0;
|
||||
$pit_list = [];
|
||||
|
||||
switch ($room_type) {
|
||||
case 1:
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
case 2://练歌房(声网点歌)
|
||||
$song = $this->get_song_info($room_id,$user_id);
|
||||
$song_pit_list = $song['song_pit_list'];
|
||||
$song_list = $song['song_user_info'];
|
||||
$next_song_info = $song['nextInfo'];
|
||||
$user_pit = $song['user_pit'];
|
||||
$pit_list = $song['pit_list'];
|
||||
break;
|
||||
case 4:
|
||||
case 3://亲密拍,真爱拍
|
||||
$roomauction = $this->auction_room($room_id,$user_id);
|
||||
$pit_list = $roomauction['pit_list'];
|
||||
$user_pit = $roomauction['user_pit'];
|
||||
break;
|
||||
case 6://私密房
|
||||
$cp_users = $this->cp_room($room_id,$user_id);
|
||||
$room_name = '';
|
||||
if($cp_users['user_id'] == $user_id){
|
||||
$room_name = db::name('user')->where('id', $cp_users['user_id1'])->value('nickname');
|
||||
}
|
||||
if($cp_users['user_id1'] == $user_id){
|
||||
$room_name = db::name('user')->where('id', $cp_users['user_id'])->value('nickname');
|
||||
}
|
||||
$room['room_name'] = '我 ❤️ '.$room_name;
|
||||
break;
|
||||
case 7://互娱房
|
||||
$friend = $this->getRoomFriendData($room_id);
|
||||
//交友状态 交友进行到第几步 1等待邂逅 2心动连线 3牵手良缘
|
||||
$friend['step'] = db::name('vs_room')->where('id', $room_id)->value('step');
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
case 9://点唱房内的演唱信息
|
||||
$singer_info = $this->getSingInfo($room_id);
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
case 10://签约房间信息
|
||||
$room_sign = db::name('vs_room_sign')->where(['room_id' => $room_id,'sign_type' => 1])->order('id desc')->find();
|
||||
if($room_sign){
|
||||
$sign_info = [
|
||||
'sign_id' => $room_sign['id'],
|
||||
'sign_status' => $room_sign['sign_type'],
|
||||
'sign_day' => $room_sign['sign_day'],
|
||||
'current_body_value' => db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value'),
|
||||
'end_time' => $room_sign['end_time']
|
||||
];
|
||||
}else{
|
||||
$sign_info = [
|
||||
'sign_id' => 0,
|
||||
'sign_status' => 0,
|
||||
'sign_day' => 0,
|
||||
'current_body_value' => 0,
|
||||
'end_time' => 0
|
||||
];
|
||||
}
|
||||
$pit_list = $this->room_pit($room_id);
|
||||
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
|
||||
break;
|
||||
}
|
||||
|
||||
//头条
|
||||
$headline = db::name('vs_headline')->where('end_time' , '>', time())->where('is_now', 1)->find();
|
||||
$headline_data = null;
|
||||
if($headline){
|
||||
$headline_data = $headline;
|
||||
$headline_data['nickname'] = db::name('user')->where('id', $headline['user_id'])->value('nickname');
|
||||
$headline_data['avatar'] = db::name('user')->where('id', $headline['user_id'])->value('avatar');
|
||||
}
|
||||
if($room['label_id'] == 3){
|
||||
$label_id = 2;
|
||||
}elseif ($room['label_id'] == 4){
|
||||
$label_id = 1;
|
||||
}else{
|
||||
$label_id = $room['label_id'];
|
||||
}
|
||||
|
||||
//上次的PK参数
|
||||
if($room['last_pk_room_id'] > 0){
|
||||
$last_pk_room_id = $room['last_pk_room_id'];
|
||||
}else{
|
||||
$last_pk_info = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->order('pk_id', 'desc')->find();
|
||||
if($last_pk_info){
|
||||
$last_pk_room_id = $last_pk_info['room_id_b'];
|
||||
}else{
|
||||
$last_pk_info1 = db::name('vs_room_pk')->where(['room_id_b' => $room_id])->order('pk_id', 'desc')->find();
|
||||
if($last_pk_info1){
|
||||
$last_pk_room_id = $last_pk_info1['room_id_a'];
|
||||
}else{
|
||||
$last_pk_room_id = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//酒吧房撩他礼物金币
|
||||
$liao_ta_gif = model('api/BarRoom')->get_liao_ta_gift();
|
||||
$liao_ta_coin = $liao_ta_gif['gift_price']??0;
|
||||
|
||||
//房间信息
|
||||
$room_info = [
|
||||
'room_id' => $room['id'],
|
||||
'is_use_code' => $room['is_use_code'],
|
||||
'room_number' => $room['room_number'],
|
||||
'room_name' => $room['room_name'],
|
||||
'room_cover' => $room['room_cover'],
|
||||
'room_intro' => $room['room_intro'],
|
||||
'type_id' => $room['type_id'],
|
||||
'type_name' => db::name('vs_room_type')->where('id', $room['type_id'])->value('type_name'),
|
||||
'user_id' => $room['user_id'],
|
||||
'label_id' => $label_id,
|
||||
'label_icon' => db::name('vs_room_label')->where('id', $room['label_id'])->value('label_icon_room'),
|
||||
'room_background' => $room['room_background'],
|
||||
'hot_value' => $room['today_hot_value'],
|
||||
'chatrooms' => 'room'.$room['id'],
|
||||
'pit_list' => $pit_list,
|
||||
'room_up_pit_type'=>$room['room_up_pit_type'],
|
||||
//正在演唱的歌曲用户信息
|
||||
'song_user_info' => $song_list,
|
||||
'online_number' => db::name('vs_room_visitor')->where(['room_id' => $room['id'],'is_online'=>1])->count(),
|
||||
'head_line'=>$headline_data,
|
||||
'is_pk' => $room['is_pk'],//1-默认接受PK,2不接受',
|
||||
'last_pk_room_id' => $last_pk_room_id,
|
||||
'queue_number' => db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count(),
|
||||
'sexy_coin' => $liao_ta_coin
|
||||
];
|
||||
|
||||
//当前用户信息
|
||||
$user_info = $this ->get_user_info($room_id,$user_id,$user_pit);
|
||||
$user_info['is_room_owner'] = ($user_id == $room['user_id']) ? 1 : 0;
|
||||
|
||||
$open_time = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('open_time');
|
||||
if($open_time > 0){
|
||||
if($open_time <= time()){
|
||||
$hour_open = 1;//开启
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
|
||||
return ['code' => 1,
|
||||
'msg' => '成功',
|
||||
'data' => ['room_info' => $room_info,
|
||||
'room_owner' => $room_owner,
|
||||
'user_info' => $user_info,
|
||||
'song_user_info' => $song_list,
|
||||
'nextInfo' => $next_song_info,
|
||||
'room_auction'=>$roomauction,
|
||||
'cp_user'=>$cp_users,
|
||||
'pk_info'=>$pk_info,
|
||||
'song_pit_list'=>$song_pit_list,
|
||||
'friend_info' => $friend,
|
||||
'gift_cycle' => $xlh_info,
|
||||
'hour_ranking_open' => $hour_open,
|
||||
'singer_info' => $singer_info,
|
||||
'sign_info' => $sign_info
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function getSingInfo($room_id)
|
||||
{
|
||||
$song_info = db::name('vs_song_log')->where(['room_id' => $room_id,'status' => 1])->find();
|
||||
|
||||
Reference in New Issue
Block a user