更新
This commit is contained in:
@@ -28,10 +28,20 @@ class Room extends Model
|
||||
return ['code' => 0, 'msg' => '请先进行实名认证通过后操作', 'data' => null];
|
||||
}
|
||||
|
||||
//检查房间名称是否包含官方等词
|
||||
//名称中不能有 系统管理 等关键字
|
||||
if(!nickname_filter($room_name)){
|
||||
return ['code' => 0, 'msg' => '名称中不能有 系统、管理、官方等相关敏感字', 'data' => null];
|
||||
}
|
||||
|
||||
if($type <= 0){
|
||||
$room_info = db::name('vs_room')->where(['user_id' => $uid, 'type_id' => ['<>',6]])->find();
|
||||
$room_info = db::name('vs_room')->where(['user_id' => $uid, 'type_id' => ['<>',6], 'apply_status' => ['<>',3]])->find();
|
||||
if (!empty($room_info)) {
|
||||
return ['code' => 0, 'msg' => '已有直播间请勿重复创建', 'data' => null];
|
||||
if($room_info['apply_status'] == 2){
|
||||
return ['code' => 0, 'msg' => '已有直播间请勿重复创建', 'data' => null];
|
||||
}elseif($room_info['apply_status'] == 1){
|
||||
return ['code' => 0, 'msg' => '房间审核中,请耐心等待', 'data' => null];
|
||||
}
|
||||
}else{
|
||||
//首次建立房间【完成任务】
|
||||
model('DailyTasks')->tasks_complete($uid,15);
|
||||
@@ -42,20 +52,29 @@ class Room extends Model
|
||||
$data['room_number'] = $this->get_user_code();
|
||||
$data['type_id'] = 1;
|
||||
$data['apply_status'] = 1;
|
||||
}else{//cp电影房
|
||||
$data['label_id'] = 1;
|
||||
}elseif ($type == 7){
|
||||
$data['room_number'] = $this->get_user_code();
|
||||
$data['type_id'] = 6;//cp电影房
|
||||
$room_intro = $room_intro.'('.$type.')';
|
||||
$data['apply_status'] = 2;
|
||||
$data['label_id'] = 5;
|
||||
}
|
||||
else{//cp电影房
|
||||
$data['room_number'] = $this->get_user_code();
|
||||
$data['type_id'] = 6;//cp电影房
|
||||
$room_intro = $room_intro.'('.$type.')';
|
||||
$data['apply_status'] = 2;
|
||||
$data['label_id'] = 1;
|
||||
}
|
||||
|
||||
$data['user_id'] = $uid;
|
||||
$data['room_name'] = $room_name;
|
||||
$data['room_cover'] = $room_cover;
|
||||
$data['room_intro'] = $room_intro;
|
||||
$data['room_background'] = get_system_config_value('web_site').'/data/default/delfultroombackground.jpg';
|
||||
$room_bg_img = db::name('vs_room_background')->where(['id' => 2])->value('image_url');
|
||||
$data['room_background'] = $room_bg_img ?? get_system_config_value('web_site').'/data/default/delfultroombackground.jpg';
|
||||
$data['is_earnings'] = 1;
|
||||
$data['label_id'] = 1;
|
||||
$data['createtime'] = time();
|
||||
|
||||
Db::startTrans();
|
||||
@@ -143,7 +162,7 @@ class Room extends Model
|
||||
if(!empty($data)){
|
||||
$reslut = $this->where('id', $room_id)->update($data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 0, 'msg' => '修改失败', 'data' => null];
|
||||
return ['code' => 0, 'msg' => '请勿重复提交', 'data' => null];
|
||||
}
|
||||
}
|
||||
//推送消息
|
||||
@@ -182,24 +201,14 @@ class Room extends Model
|
||||
}
|
||||
|
||||
$list = db::name('vs_room')->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value,label_id,is_show_room')
|
||||
->where($map)->order('hot_value desc')->page($page, $page_limit)->select();
|
||||
// var_dump($list);
|
||||
foreach ($list as $k => &$v){
|
||||
if($v['is_show_room'] == 2){ //是否显示房间 1是2否
|
||||
//查询当前房间是否有主持在麦上
|
||||
$room_host_info = db::name('vs_room_pit')->where(['room_id' => $v['room_id'], 'pit_number' => 9])->value('user_id');
|
||||
if($room_host_info == 0){
|
||||
unset($list[$k]);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// $v['hot_value'] = $v['hot_value'] * 10;
|
||||
->where($map)->order('hot_value desc, id asc')->page($page, $page_limit)->select();
|
||||
|
||||
foreach ($list as &$v){
|
||||
$v['user_list'] = model('RoomUser')->get_room_user_list($v['room_id']);
|
||||
$v['label_name'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_name');
|
||||
$v['label_icon'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_icon');
|
||||
}
|
||||
//$list 不为空 数组重组
|
||||
$list = array_values((array)$list);
|
||||
|
||||
//版本号
|
||||
$app_version = request()->header('App-Version');
|
||||
$system = request()->header('system');
|
||||
@@ -215,32 +224,6 @@ class Room extends Model
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => $list, 'api_version' => $api_version];
|
||||
}
|
||||
|
||||
//关注的用户现在所在房间(废弃)
|
||||
public function user_follow_in_room_list($uid ,$page, $page_limit)
|
||||
{
|
||||
//关注的用户列表
|
||||
$follow_list = db::name('user_follow')->where('user_id', $uid)->field('follow_user_id')->select();
|
||||
if(!empty($follow_list)){
|
||||
$user_room_list = [];
|
||||
foreach ($follow_list as $k => $v){
|
||||
//用户是否在房间中
|
||||
$user_room_info = db::name('vs_room_visitor')->where('user_id', $v['follow_user_id'])->field('room_id')->find();
|
||||
if(!empty($user_room_info)){
|
||||
$user_room_list[] = $user_room_info['room_id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!empty($user_room_list)){
|
||||
$list = db::name('vs_room')->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value')
|
||||
->where('id', 'in', $user_room_list)->order('hot_value desc')->page($page, $page_limit)->select();
|
||||
foreach ($list as $k => &$v){
|
||||
// $v['hot_value'] = $v['hot_value'] * 10;
|
||||
$v['user_list'] = model('RoomUser')->get_room_user_list($v['id']);
|
||||
}
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => $list];
|
||||
}
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => []];
|
||||
}
|
||||
|
||||
//首页弹出的房间
|
||||
public function index_recommend_room()
|
||||
@@ -289,7 +272,7 @@ class Room extends Model
|
||||
$roomInfo = db::name('vs_room')
|
||||
->field('id as room_id,room_number,user_id,room_name,room_cover,apply_status,type_id,room_status,label_id')
|
||||
->where('user_id' , $uid)
|
||||
->where(['type_id' => ['<>',6],'room_status' =>1])
|
||||
->where(['type_id' => ['<>',6],'room_status' =>1,'apply_status' => ['<>',3]])
|
||||
->page($page, $page_limit)
|
||||
->select();
|
||||
}
|
||||
@@ -305,8 +288,15 @@ class Room extends Model
|
||||
$v['is_use_code'] = 1;
|
||||
$v['room_number'] = $liang;
|
||||
}
|
||||
//今日收益
|
||||
$v['today_profit'] = $this->get_room_today_profit($v['room_id']) * 10;
|
||||
if($type == 1) {//1-我主持的
|
||||
//今日收益
|
||||
$v['today_profit'] = round( $this->get_room_today_earnings($v['room_id'],$uid),4);
|
||||
}else{
|
||||
//今日流水
|
||||
//金币与魅力比例
|
||||
$ratio = get_system_config_value('coin_charm_exp');
|
||||
$v['today_profit'] = $this->get_room_today_profit($v['room_id']) * $ratio;
|
||||
}
|
||||
//关注数
|
||||
$v['follow_num'] = db::name('user_follow')->where('follow_id', $v['room_id'])->where('type', 2)->count();
|
||||
//访问数
|
||||
@@ -352,7 +342,6 @@ class Room extends Model
|
||||
}
|
||||
|
||||
$cp_room[$i]['room_id'] = $v['room_id'];
|
||||
// $cp_room[$i]['room_name'] = '我 ❤️ '.$room_name.db::name('vs_room')->where('id', $v['room_id'])->value('room_name');
|
||||
$cp_room[$i]['room_name'] = '我 ❤️ '.$room_name;
|
||||
$cp_room[$i]['room_number'] = db::name('vs_room')->where('id', $v['room_id'])->value('room_number');
|
||||
$cp_room[$i]['end_time'] = $v['time_day'];
|
||||
@@ -366,7 +355,7 @@ class Room extends Model
|
||||
return $cp_room;
|
||||
}
|
||||
|
||||
//房间今日收益
|
||||
//房间今日流水
|
||||
public function get_room_today_profit($room_id)
|
||||
{
|
||||
$room_type = db::name('vs_room')->where('id', $room_id)->value('type_id');
|
||||
@@ -381,6 +370,17 @@ class Room extends Model
|
||||
return $profit;
|
||||
}
|
||||
|
||||
//房间今日主持收益
|
||||
public function get_room_today_earnings($room_id,$user_id)
|
||||
{
|
||||
$today_start_time = strtotime(date('Y-m-d'));
|
||||
$today_end_time = $today_start_time + 86400;
|
||||
return Db::name('vs_user_money_log')
|
||||
->where(['room_id' => $room_id,'user_id' => $user_id,'change_type' =>19])
|
||||
->whereBetween('createtime', [$today_start_time, $today_end_time])
|
||||
->sum('change_value');
|
||||
}
|
||||
|
||||
//房间补贴
|
||||
public function room_ubsidy($room_id){
|
||||
$room_type = db::name('vs_room')->where('id', $room_id)->value('type_id');
|
||||
@@ -461,17 +461,8 @@ class Room extends Model
|
||||
if(!$room){
|
||||
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
|
||||
}
|
||||
//获取房间名称
|
||||
// $room_name = $room['room_name'];
|
||||
|
||||
//查询房主是否加入公会
|
||||
// $guild_id = model('Guild')->user_is_join($room['user_id']);
|
||||
// //获取房主收益比例
|
||||
// if($guild_id > 0){
|
||||
// $room_user_ratio = get_system_config_value('room_author_guild_ratio')/100;
|
||||
// }else{
|
||||
$room_user_ratio = get_system_config_value('room_author_ratio')/100;
|
||||
// }
|
||||
$room_user_ratio = get_system_config_value('room_author_ratio')/100;
|
||||
|
||||
//根据日期查询房间流水
|
||||
$field = "b.nickname as sender_nickname,b.avatar as sender_avatar,c.nickname as receive_nickname,c.avatar as receive_avatar,dd.gift_name,a.number,a.total_price,{$group_field} as time";
|
||||
@@ -487,17 +478,9 @@ class Room extends Model
|
||||
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
|
||||
}
|
||||
|
||||
// $count = db::name('vs_give_gift')->alias('a')->field($field)
|
||||
// ->join('user b', 'a.user_id = b.id')
|
||||
// ->join('user c', 'a.gift_user = c.id')
|
||||
// ->join('vs_give_gift d', 'a.gift_id = d.id')
|
||||
// ->where($where)
|
||||
// ->count();
|
||||
|
||||
$list = db::name('vs_give_gift')->alias('a')->field($field)
|
||||
->join('user b', 'a.user_id = b.id')
|
||||
->join('user c', 'a.gift_user = c.id')
|
||||
// ->join('vs_give_gift d', 'a.gift_id = d.id')
|
||||
->join('vs_gift dd', 'a.gift_id = dd.gid')
|
||||
->where($where)
|
||||
->page($page,$page_limit)
|
||||
@@ -547,10 +530,13 @@ class Room extends Model
|
||||
|
||||
//进入房间
|
||||
public function join_room($user_id, $room_id, $password) {
|
||||
$room = db::name('vs_room')->where(['id' => $room_id,'apply_status' => 2])->find();
|
||||
$room = db::name('vs_room')->where(['id' => $room_id,'apply_status' => ['in',[1,2]]])->find();
|
||||
if (!isset($room)) {
|
||||
return ['code' => 0, 'msg' => '房间不存在', 'data' => ''];
|
||||
}
|
||||
if($room['apply_status'] == 1){
|
||||
return ['code' => 0, 'msg' => '房间正在审核中……', 'data' => ''];
|
||||
}
|
||||
if(isset($room['password']) && $user_id != $room['user_id']){
|
||||
if (empty($password) || $room['password'] != md5($password)) {
|
||||
return ['code' => 0, 'msg' => '密码错误', 'data' => ''];
|
||||
@@ -584,19 +570,18 @@ class Room extends Model
|
||||
}
|
||||
|
||||
//用户是否在其他房间
|
||||
$room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->value('room_id');
|
||||
if (isset($room_user) && $room_user != $room_id) {
|
||||
// return ['code' => 0, 'msg' => '您已在其他房间', 'data' => ''];
|
||||
//根据房间状态判断是否要退出房间并且下麦
|
||||
$room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->order('id desc')->value('room_id');
|
||||
if (isset($room_user) && $room_user != $room_id && $room_user != 0) {
|
||||
//根据所在房间状态判断是否要退出房间并且下麦
|
||||
$roomInfo = db::name('vs_room')->where(['id' => $room_user,'apply_status' => 2])->find();
|
||||
if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4)&& $roomInfo['label_id'] == 1){
|
||||
if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 1){
|
||||
//退出其他房间
|
||||
$this->quit_room($user_id, $room_user,$user_id);
|
||||
}elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4)&& $roomInfo['label_id'] == 2){//k歌
|
||||
}elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 2){//k歌
|
||||
//他的点歌列表
|
||||
$song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select();
|
||||
if(count($song_list) > 0){
|
||||
foreach ($song_list as $key => $value){
|
||||
foreach ($song_list as $value){
|
||||
if($value['status'] == 2 && $value['times_status'] == 1){
|
||||
//切歌
|
||||
model('api/RoomSong')->change_song($room_id,$value['did']);
|
||||
@@ -608,7 +593,7 @@ class Room extends Model
|
||||
}
|
||||
//记录用户退出房
|
||||
$this->quit_room($user_id, $room_user,$user_id);
|
||||
}elseif($roomInfo['type_id'] == 3){
|
||||
}elseif($roomInfo['type_id'] == 2){
|
||||
//是否在拍卖位
|
||||
$pitNumber = Cache::get('auction_user_'.$room_user);
|
||||
if(isset($pitNumber) && $pitNumber == $user_id){
|
||||
@@ -636,7 +621,7 @@ class Room extends Model
|
||||
$user_pit = 0;
|
||||
$pit_list = [];
|
||||
$cp_users = null;
|
||||
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4) {//1点唱,3男神,4女神
|
||||
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7 || $room['type_id'] == 8) {//1点唱,3男神,4女神
|
||||
if($room['label_id'] == 2){//K歌
|
||||
$song = $this->get_song_info($room_id,$user_id);
|
||||
$song_list = $song['song_user_info'];
|
||||
@@ -706,6 +691,7 @@ class Room extends Model
|
||||
if (!$is_join) {
|
||||
db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]);
|
||||
}
|
||||
db::name('user_data')->where('user_id', $user_id)->update(['room_id' => $room_id]);
|
||||
|
||||
$room['is_use_code'] = 0;
|
||||
$liang = model('api/Decorate')->user_decorate_detail($room['id'],7);
|
||||
@@ -853,6 +839,27 @@ 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;
|
||||
}
|
||||
|
||||
$xlh_info['xlh_info'] = model('BlindBoxTurntableGift')->get_user_xlh_info($room_id);
|
||||
$open_time = db::name('vs_hour_ranking_config')->where('id', 1)->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,
|
||||
@@ -863,7 +870,10 @@ 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,
|
||||
'gift_cycle' => $xlh_info,
|
||||
'hour_ranking_open' => $hour_open
|
||||
]
|
||||
];
|
||||
}
|
||||
@@ -1072,10 +1082,14 @@ class Room extends Model
|
||||
$room_label = $res['data']['label_id'];
|
||||
$room_type = $res['data']['type_id'];
|
||||
$apply_type = 0;
|
||||
if($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
|
||||
if($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
|
||||
$apply_type = 1;
|
||||
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
|
||||
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
|
||||
$apply_type = 2;
|
||||
}elseif ($room_type == 7){//交友房 再开始阶段在麦位上不下麦
|
||||
$apply_type = 3;
|
||||
}elseif($room_type == 6 && $room_label == 5){ //交友私密屋
|
||||
$apply_type = 4;
|
||||
}
|
||||
|
||||
if($apply_type == 1){
|
||||
@@ -1101,7 +1115,18 @@ class Room extends Model
|
||||
$text['pit_number'] = '';
|
||||
model('api/Chat')->sendMsg(1004,$room_id,$text);
|
||||
}
|
||||
}else{
|
||||
}elseif ($apply_type == 3){
|
||||
$roomInfoStep = db::name('vs_room')->where(['id' => $room_id])->value('step');
|
||||
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
|
||||
if($roomInfoStep == 1 || ($roomInfoStep == 2 && ($room_pit['pit_number'] == 9 || $room_pit['pit_number'] == 10))){
|
||||
if (isset($room_pit)) {
|
||||
model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
|
||||
}
|
||||
}
|
||||
}elseif ($apply_type == 4){
|
||||
model('api/Friend')->outRoom($uid, $room_id);
|
||||
}
|
||||
else{
|
||||
//在麦位上 移除用户
|
||||
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
|
||||
if (isset($room_pit)) {
|
||||
@@ -1132,7 +1157,7 @@ class Room extends Model
|
||||
}else{
|
||||
$room_typer = '管理员';
|
||||
}
|
||||
db::name('vs_room_black')->insert(['room_id' => $room_id, 'user_id' => $uid,'black_id' => $user_id,'type' => 1,'kick_time' => time()+300,'createtime' => time()]);
|
||||
db::name('vs_room_black')->insert(['room_id' => $room_id, 'user_id' => $uid,'black_id' => $user_id,'type' => 1,'kick_time' => time()+600,'createtime' => time()]);
|
||||
//发送消息
|
||||
|
||||
$text['text'] = '用户 ' . $nickname . ' 被 '. $room_typer .' 踢出房间';
|
||||
@@ -1140,6 +1165,12 @@ class Room extends Model
|
||||
//1-禁麦位,2-清空消息,3-清空魅力值,4-加入黑名单,5-踢出房间,6-关闭麦克风,7-申请上麦,8-同意上麦,9-拒绝上麦,10-点歌,11-开启PK',
|
||||
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
|
||||
}
|
||||
if($type == 2){
|
||||
$text['text'] = '用户 ' . $nickname . ' 被 踢出房间';
|
||||
model('api/Chat')->sendMsg(1011,$room_id,$text,$user_id);
|
||||
//1-禁麦位,2-清空消息,3-清空魅力值,4-加入黑名单,5-踢出房间,6-关闭麦克风,7-申请上麦,8-同意上麦,9-拒绝上麦,10-点歌,11-开启PK',
|
||||
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
|
||||
}
|
||||
if($type == 0){
|
||||
//发送消息
|
||||
$text['text'] = '用户 ' . $nickname .' 退出了房间';
|
||||
@@ -1168,13 +1199,6 @@ class Room extends Model
|
||||
$where['a.createtime'] = ['between', [strtotime('this week Monday'), time()]];
|
||||
}
|
||||
if($type == 1){//1财富榜,2魅力榜
|
||||
// $list = db::name('vs_room_user_charm')->alias('a')
|
||||
// ->join('user b', 'a.user_id = b.id')
|
||||
// ->field('a.user_id,b.nickname,b.avatar,a.total_wealth as total')
|
||||
// ->where($where)
|
||||
// ->order('a.total_wealth desc')
|
||||
// ->page($page, $limit)
|
||||
// ->select();
|
||||
$list = db::name('vs_give_gift')->alias('a')
|
||||
->join('user b', 'a.user_id = b.id')
|
||||
->field('a.user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
|
||||
@@ -1184,13 +1208,6 @@ class Room extends Model
|
||||
->page($page, $limit)
|
||||
->select();
|
||||
}else{
|
||||
// $list = db::name('vs_room_user_charm')->alias('a')
|
||||
// ->join('user b', 'a.user_id = b.id')
|
||||
// ->field('a.user_id,b.nickname,b.avatar,a.total_charm as total')
|
||||
// ->where($where)
|
||||
// ->order('a.total_charm desc')
|
||||
// ->page($page, $limit)
|
||||
// ->select();
|
||||
$list = db::name('vs_give_gift')->alias('a')
|
||||
->join('user b', 'a.gift_user = b.id')
|
||||
->field('a.gift_user as user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
|
||||
@@ -1213,7 +1230,7 @@ class Room extends Model
|
||||
|
||||
|
||||
//房间送礼
|
||||
public function room_gift($uid, $to_uid, $gift_id, $gift_num,$type, $room_id, $pit_number)
|
||||
public function room_gift($uid, $to_uid, $gift_id, $gift_num,$type, $room_id, $pit_number, $heart_id,$give_gift_ext="")
|
||||
{
|
||||
$label_type = model('Room')->get_room_label($room_id);
|
||||
if($label_type['code'] != 1){
|
||||
@@ -1228,11 +1245,11 @@ class Room extends Model
|
||||
//$from_type 来源 1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 5系统任务 6-cp房间送礼
|
||||
//$type 1金币购买 2送背包礼物
|
||||
//送礼人,接收者(群),礼物id,礼物数量,来源,类型,来源id(房间id),麦位
|
||||
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number);
|
||||
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
|
||||
return $res;
|
||||
}elseif (($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 2)//K歌,type_id = 1,label_id = 2
|
||||
}elseif (($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 2)//K歌,type_id = 1,label_id = 2
|
||||
{
|
||||
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number);
|
||||
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
|
||||
if($res['code'] == 1){
|
||||
$room_pits = model('RoomSong')->get_charm_rank($room_id);
|
||||
if($room_pits['code'] == 1){
|
||||
@@ -1246,13 +1263,31 @@ class Room extends Model
|
||||
}
|
||||
return $res;
|
||||
}elseif($label_type['data']['type_id'] == 6){
|
||||
return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,6,$type, $room_id,$pit_number);
|
||||
return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,6,$type, $room_id,$pit_number,0,$give_gift_ext);
|
||||
}elseif($label_type['data']['type_id'] == 7){
|
||||
return model('Friend')->room_give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,$heart_id,$give_gift_ext);
|
||||
}else{
|
||||
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number);
|
||||
return $res;
|
||||
return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
|
||||
}
|
||||
}
|
||||
|
||||
//背包礼物一键全清
|
||||
public function room_gift_all_clear($uid, $room_id, $user_id,$heart_id,$auction_id = 0)
|
||||
{
|
||||
$user_gift_pack = db::name('vs_user_gift_pack')->where(['user_id'=>$uid,'is_tester'=>1,'is_use_give'=>1,'num'=>['>',0]])->select();
|
||||
if (empty($user_gift_pack)) {
|
||||
return ['code' => 0, 'msg' => '用户背包礼物不足', 'data' => null];
|
||||
}
|
||||
foreach ($user_gift_pack as $v){
|
||||
if($auction_id){//竞拍
|
||||
model('RoomAuction')->room_auction_join($auction_id,$uid,$v['gid'],$v['num'],2);
|
||||
}else{
|
||||
$this->room_gift($uid, $user_id, $v['gid'], $v['num'],2,$room_id, 0,$heart_id);
|
||||
}
|
||||
}
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
//房间在线列表
|
||||
public function room_online_list($room_id, $page, $limit)
|
||||
@@ -1263,83 +1298,29 @@ class Room extends Model
|
||||
if ($label_type['code'] != 1) {
|
||||
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
|
||||
}
|
||||
|
||||
//获取在房间的用户
|
||||
$in_room_users = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
|
||||
if($in_room_users){
|
||||
foreach ($in_room_users as $v){
|
||||
$userss = db::name('user')->where(['id' => $v['user_id']])->field('is_online,is_robot')->find();
|
||||
if($userss['is_online'] == 1 && $userss['is_robot'] == 1){//在线或者机器人都设置为在线
|
||||
db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 1]);
|
||||
//查询房间里面的用户
|
||||
$room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
|
||||
if($room_user){
|
||||
foreach ($room_user as $vv){
|
||||
if(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 1){
|
||||
//不做处理
|
||||
}else{
|
||||
db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 0]);
|
||||
//查询是否有切后台的操作
|
||||
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $room_id,'user_id' => $vv['user_id']])->find();
|
||||
|
||||
if(Db::name('user')->where('id', $vv['user_id'])->value('is_online') == 0 && !$bg_room){
|
||||
model('Room')->quit_room($vv['user_id'], $room_id,$vv['user_id'],2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// //查找数据库用户
|
||||
// $dblist = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
|
||||
// //循环获取在线用户ID 拼接数据
|
||||
// $user_id_array = [];
|
||||
// //机器人user_id
|
||||
// $robot_user_id = [];
|
||||
// foreach ($dblist as $v) {
|
||||
// //机器人
|
||||
// if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
|
||||
// $robot_user_id[] = $v['user_id'];
|
||||
// continue;
|
||||
// }
|
||||
// $user_id_array[] = 'u'.$v['user_id'];
|
||||
// }
|
||||
// //获取腾讯的在线用户
|
||||
// $online_users = model('Tencent')->query_user_online_status($user_id_array);
|
||||
// $online_user = [];
|
||||
// if(isset($online_users['ActionStatus']) && $online_users['ActionStatus'] == 'OK'){
|
||||
// if($online_users['QueryResult']){
|
||||
// foreach ($online_users['QueryResult'] as $v){
|
||||
// if($v['Status'] == "Online"){
|
||||
// //截取用户ID前面的 u 并获取用户ID
|
||||
// $user_id = substr($v['To_Account'],1);
|
||||
// $online_user[] = $user_id;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if($dblist){
|
||||
// $onpit = db::name('vs_room_pit')->field('user_id')->where(['room_id' => $room_id])->select();
|
||||
// //合并数组
|
||||
// $array = array_merge($online_user,$robot_user_id);
|
||||
//// $array = $online_user;
|
||||
// $arraypit = array_values((array)$onpit);
|
||||
// foreach ($dblist as &$v){
|
||||
//// if(in_array($v['user_id'],$arraypit)){
|
||||
//// //跳过本次循环
|
||||
//// continue;
|
||||
//// }
|
||||
// if(!in_array($v['user_id'],$array)){
|
||||
// //修改他的状态
|
||||
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 0]);
|
||||
// //查询他是否在其他房间
|
||||
// $room_id_list = db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>['neq',$room_id]])->find();
|
||||
// if($room_id_list){
|
||||
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id']])->delete();
|
||||
// }
|
||||
// }else{
|
||||
// //修改他的状态
|
||||
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 1]);
|
||||
// }
|
||||
// }
|
||||
// }else{
|
||||
// $lists = ['on_pit' => [], 'off_pit' => []];
|
||||
// return ['code' => 1, 'msg' => '成功', 'data' => $lists];
|
||||
// }
|
||||
|
||||
|
||||
$list = db::name('vs_room_visitor')->alias('a')
|
||||
->join('user b', 'a.user_id = b.id')
|
||||
->field('a.user_id,b.nickname,b.avatar')
|
||||
->where(['a.room_id' => $room_id,'on_line' => 1])
|
||||
->where(['a.room_id' => $room_id,'b.is_online' => 1])
|
||||
->group('a.user_id')
|
||||
->order('a.id asc')
|
||||
->page($page, $limit)
|
||||
->select();
|
||||
@@ -1361,17 +1342,16 @@ class Room extends Model
|
||||
});
|
||||
}
|
||||
|
||||
if($label_type['data']['type_id'] == 7 || ($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 1) {//2卡八麦(聊天)type_id = 1 || 7(交友),label_id = 1
|
||||
foreach ($list as &$val) {
|
||||
if($label_type['data']['type_id'] == 7 || ($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 1) {//2卡八麦(聊天)type_id = 1 || 7(交友),label_id = 1
|
||||
foreach ($list as $val) {
|
||||
if ($val['pit_number'] > 0) {
|
||||
$lists['on_pit'][] = $val;
|
||||
} else {
|
||||
$lists['off_pit'][] = $val;
|
||||
}
|
||||
}
|
||||
}elseif(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 2){
|
||||
foreach ($list as &$val) {
|
||||
// var_dump($val['pit_number']);exit;
|
||||
}elseif(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 2){
|
||||
foreach ($list as $val) {
|
||||
if (db::name('vs_room_pit_simulate')->where(['room_id' => $room_id,'user_id' => $val['user_id']])->find() || $val['pit_number'] > 0) {
|
||||
$lists['on_pit'][] = $val;
|
||||
} else {
|
||||
@@ -1391,7 +1371,7 @@ class Room extends Model
|
||||
if($auct){
|
||||
//获取数组里面的用户ID 组成新的数组
|
||||
$user_ids = array_column((array)$auct, 'user_id');
|
||||
foreach ($list as &$val) {
|
||||
foreach ($list as $val) {
|
||||
if (in_array($val['user_id'], $user_ids) || $val['pit_number'] > 0) {
|
||||
$lists['on_pit'][] = $val;
|
||||
} else {
|
||||
@@ -1399,7 +1379,7 @@ class Room extends Model
|
||||
}
|
||||
}
|
||||
}else{
|
||||
foreach ($list as &$val) {
|
||||
foreach ($list as $val) {
|
||||
if ($val['pit_number'] > 0) {
|
||||
$lists['on_pit'][] = $val;
|
||||
} else {
|
||||
@@ -1409,8 +1389,7 @@ class Room extends Model
|
||||
}
|
||||
|
||||
}else{
|
||||
foreach ($list as &$val) {
|
||||
// $lists['off_pit'][] = $val;
|
||||
foreach ($list as $val) {
|
||||
if ($val['pit_number'] > 0) {
|
||||
$lists['on_pit'][] = $val;
|
||||
} else {
|
||||
@@ -1420,6 +1399,7 @@ class Room extends Model
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $lists];
|
||||
}
|
||||
|
||||
@@ -1472,7 +1452,7 @@ class Room extends Model
|
||||
$user_info['is_in_pit'] = 1;
|
||||
}
|
||||
}
|
||||
}elseif (($room_type['type_id'] == 1 || $room_type['type_id'] == 3 || $room_type['type_id'] == 4) && $room_type['label_id'] == 1){
|
||||
}elseif ($room_type['type_id'] == 7 || ($room_type['type_id'] == 1 || $room_type['type_id'] == 3 || $room_type['type_id'] == 4 || $room_type['type_id'] == 8) && $room_type['label_id'] == 1){
|
||||
$hah = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
|
||||
if($hah){
|
||||
$user_info['is_in_pit'] = 1;
|
||||
@@ -1558,6 +1538,7 @@ class Room extends Model
|
||||
'GiftInfo' => null,
|
||||
'GiftNum' => null
|
||||
];
|
||||
$typee = 0;
|
||||
if($type == 1){//1-主持,2管理
|
||||
if($is_add == 1){//1-添加,2-删除
|
||||
$typee = 1007;
|
||||
@@ -1633,6 +1614,9 @@ class Room extends Model
|
||||
if(!$is_host){
|
||||
return ['code' => 0, 'msg' => '用户不是主持人,不能设置收益', 'data' => null];
|
||||
}
|
||||
if($profit < 0 || $profit > 100){
|
||||
return ['code' => 0, 'msg' => '请输入正确的比例 0-100', 'data' => null];
|
||||
}
|
||||
$res = db::name('vs_room_host')->where(['room_id' => $room_id,'user_id' => $user_id,'type' => 1,'delete_time' => null])
|
||||
->update(['ratio' => $profit]);
|
||||
if(!$res){
|
||||
@@ -1642,10 +1626,8 @@ class Room extends Model
|
||||
}
|
||||
|
||||
//清除房间用户的魅力值
|
||||
public function clear_user_charm($user_id ,$room_id,$uid)
|
||||
public function clear_user_charm($user_id ,$room_id,$uid='')
|
||||
{
|
||||
//判断用户是否在主持麦
|
||||
// $is_host = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id,'pit_number' => 9])->find();
|
||||
$owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
|
||||
$management = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find();
|
||||
if(!$owner && !$management){
|
||||
@@ -1653,24 +1635,18 @@ class Room extends Model
|
||||
}
|
||||
|
||||
if($uid <= 0){
|
||||
//获取房间内所有用户
|
||||
$list = db::name('vs_room_visitor')->field('user_id')->where(['room_id' => $room_id])->select();
|
||||
|
||||
//循环清除用户魅力值
|
||||
if($list){
|
||||
foreach ($list as $v){
|
||||
//清除有魅力值的用户
|
||||
if(db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->find()){
|
||||
db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->update(['charm' => 0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]);
|
||||
//发送消息
|
||||
$text['text'] = '清除魅力成功';
|
||||
model('Chat')->sendMsg(1021,$room_id,$text);
|
||||
}else{
|
||||
$dd = db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0]);
|
||||
db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0,'clear_time' => time()]);
|
||||
//发送消息
|
||||
$text['text'] = '清除魅力成功';
|
||||
$text['user_id'] = $uid;
|
||||
model('Chat')->sendMsg(1059,$room_id,$text);
|
||||
}
|
||||
//发送消息
|
||||
$text['text'] = '清除魅力成功';
|
||||
model('Chat')->sendMsg(1021,$room_id,$text);
|
||||
|
||||
//1-禁麦位,2-清空消息,3-清空魅力值,4-加入黑名单,5-踢出房间,6-关闭麦克风,7-申请上麦,8-同意上麦,9-拒绝上麦,10-点歌,11-开启PK',
|
||||
model('Room')->room_operation_record($user_id,$room_id,3);
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => null];
|
||||
@@ -1694,9 +1670,21 @@ class Room extends Model
|
||||
return ['code' => 0, 'msg' => '房间类型已存在', 'data' => null];
|
||||
}
|
||||
|
||||
if($roomInfo['type_id'] == 7 && ($roomInfo['step'] == 2 || $roomInfo['step'] == 3)){
|
||||
return ['code' => 0, 'msg' => '请先结束交友后在修改房间类型', 'data' => null];
|
||||
}
|
||||
|
||||
if($roomInfo['type_id'] == 2){
|
||||
$room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select();
|
||||
if($room_auction){
|
||||
return ['code' => 0, 'msg' => '请先结束竞拍后在修改房间类型', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//开启事务
|
||||
db::startTrans();
|
||||
if($type == 1 || $type == 3 || $type == 4){
|
||||
$data = [];
|
||||
if($type == 1 || $type == 3 || $type == 4 || $type == 8){
|
||||
$data = [
|
||||
'label_id' => 1,
|
||||
'type_id' => $type,
|
||||
@@ -1712,6 +1700,14 @@ class Room extends Model
|
||||
'is_song' => 1
|
||||
];
|
||||
}
|
||||
//交友房(互娱)
|
||||
if($type == 7){
|
||||
$data = [
|
||||
'label_id' => 5,
|
||||
'type_id' => $type,
|
||||
'room_up_pit_type' => 1,
|
||||
];
|
||||
}
|
||||
$res = db::name('vs_room')->where(['id' => $room_id])->update($data);
|
||||
|
||||
if(!$res){
|
||||
@@ -1737,12 +1733,8 @@ class Room extends Model
|
||||
db::name('vs_room_pit_simulate')->where(['room_id' => $room_id])->delete();
|
||||
//申请上麦的全部下麦
|
||||
model('RoomPit')->clear_apply_pit_list($uid, $room_id);
|
||||
//处理之前修改的用户房间信息
|
||||
if($type == 1 || $type == 3 || $type == 4){
|
||||
db::name('vs_room_pit')->where(['pit_number' =>['>',10]])->update(['status' => 2]);
|
||||
}
|
||||
|
||||
if($type == 1 || $type == 3 || $type == 4){
|
||||
if($type == 1 || $type == 3 || $type == 4 || $type == 7 || $type == 8){
|
||||
//查询拍卖房的状态
|
||||
$room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select();
|
||||
if($room_auction){
|
||||
@@ -1750,10 +1742,16 @@ class Room extends Model
|
||||
model('RoomAuction')->room_auction_end($room_id,$v['auction_id']);
|
||||
}
|
||||
}
|
||||
//拍卖位上是否有人
|
||||
$an = Cache::get('auction_user_'.$room_id);
|
||||
if($an){
|
||||
//拍卖位下麦
|
||||
model('api/RoomPit')->host_user_pit($uid,$room_id,888,$an,2);
|
||||
}
|
||||
}
|
||||
if($type == 2){
|
||||
//清除房间此前的魅力值
|
||||
db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0]);
|
||||
db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]);
|
||||
//10号麦有人就下去
|
||||
$pit_10 = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 10])->find();
|
||||
if($pit_10 && $pit_10['user_id'] > 0){
|
||||
@@ -1769,6 +1767,15 @@ class Room extends Model
|
||||
'text' => '房间类型已修改type--'.$type
|
||||
];
|
||||
model('Chat')->sendMsg(1012,$room_id,$text);
|
||||
//查询房间里面的用户
|
||||
$room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
|
||||
if($room_user){
|
||||
foreach ($room_user as $v){
|
||||
if(Db::name('user')->where('id', $v['user_id'])->value('is_online') == 0){
|
||||
model('Room')->quit_room($v['user_id'], $room_id,$v['user_id'],2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ['code' => 1, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
|
||||
@@ -1805,6 +1812,11 @@ class Room extends Model
|
||||
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;
|
||||
@@ -1813,8 +1825,8 @@ class Room extends Model
|
||||
$pit_list = null;
|
||||
$roomauction = null;
|
||||
$cp_users = null;
|
||||
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4) {
|
||||
if($room['label_id'] == 1){
|
||||
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7 || $room['type_id'] == 8) {
|
||||
if($room['label_id'] == 1 || $room['label_id'] == 5){
|
||||
//麦位信息
|
||||
$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])
|
||||
@@ -2002,6 +2014,27 @@ 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;
|
||||
}
|
||||
|
||||
$xlh_info['xlh_info'] = model('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;//关闭
|
||||
}
|
||||
|
||||
return ['code' => 1,
|
||||
'msg' => '成功',
|
||||
'data' => ['room_info' => $room_info,
|
||||
@@ -2012,7 +2045,10 @@ 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,
|
||||
'gift_cycle' => $xlh_info,
|
||||
'hour_ranking_open' => $hour_open
|
||||
]
|
||||
];
|
||||
}
|
||||
@@ -2032,11 +2068,7 @@ class Room extends Model
|
||||
if(!$is_host && !$is_room_owner){
|
||||
return ['code' => 0, 'msg' => '您没有权限', 'data' => null];
|
||||
}
|
||||
//是否在主持麦位上
|
||||
// $is_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 9])->value('user_id');
|
||||
// if($uid != $is_pit){
|
||||
// return ['code' => 0, 'msg' => '您没有权限', 'data' => null];
|
||||
// }
|
||||
|
||||
if(!in_array($is_mute, [1,2,3,4])){
|
||||
return ['code' => 0, 'msg' => '参数错误!', 'data' => null];
|
||||
}
|
||||
@@ -2222,7 +2254,7 @@ class Room extends Model
|
||||
->join('user c','a.user_id2 = c.id','left')
|
||||
->join('vs_relation d','a.relation_id = d.id','left')//关系
|
||||
->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image')
|
||||
->where(['a.user_id1' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0])
|
||||
->where(['a.user_id1' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0,'a.relation_id' => ['>',0]])
|
||||
->order('a.updatetime desc')
|
||||
->select();
|
||||
$room_auction2 = db::name('vs_room_auction_relation')->alias('a')
|
||||
@@ -2230,7 +2262,7 @@ class Room extends Model
|
||||
->join('user c','a.user_id2 = c.id','left')
|
||||
->join('vs_relation d','a.relation_id = d.id','left')//关系
|
||||
->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image')
|
||||
->where(['a.user_id2' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0])
|
||||
->where(['a.user_id2' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0,'a.relation_id' => ['>',0]])
|
||||
->order('a.updatetime desc')
|
||||
->select();
|
||||
|
||||
@@ -2475,4 +2507,128 @@ class Room extends Model
|
||||
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
|
||||
}
|
||||
|
||||
public function getRoomFriendData($room_id)
|
||||
{
|
||||
//交友相关回值
|
||||
$friend = [];
|
||||
$friend['friend_id'] = 0;//场次ID
|
||||
//查询用户交友表
|
||||
$friend_info = db::name('vs_user_friending')->where(['room_id' => $room_id,'status' => 1])->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'];
|
||||
$friend['heart_list'] = model('Friend')->pullHeartChange($room_id, $friend_info['id']);
|
||||
}
|
||||
return $friend;
|
||||
}
|
||||
|
||||
|
||||
//房间用户当前魅力值列表
|
||||
public function room_user_charm_list($room_id, $user_id)
|
||||
{
|
||||
if($room_id == '' || $user_id == ''){
|
||||
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
$clear_time = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $user_id])
|
||||
->order('id', 'desc')->value('clear_time') ?? 0;
|
||||
$list = db::name('vs_give_gift')->alias('a')
|
||||
->join('user b', 'a.user_id=b.id')
|
||||
->field('a.user_id,sum(a.total_price) as total_price,b.nickname,b.avatar,b.user_code')
|
||||
->where(['a.from_id' => $room_id, 'a.gift_user' => $user_id, 'a.createtime' => ['>',$clear_time],'a.from' => 2])
|
||||
->group('a.user_id')->select();
|
||||
if($list){
|
||||
foreach ($list as &$v){
|
||||
$v['charm'] = $v['total_price'] * get_system_config_value('coin_charm_exp');
|
||||
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||
$v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标
|
||||
}
|
||||
}
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => $list];
|
||||
}
|
||||
|
||||
//用户重连
|
||||
public function user_reconnect($user_id,$room_id)
|
||||
{
|
||||
if(!$room_id){
|
||||
// $room_id = Db::name('user_data')->where('user_id', $user_id)->value('room_id');
|
||||
}
|
||||
if(!$room_id){
|
||||
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
//查询用户在几个房间
|
||||
$room = db::name('vs_room_visitor')->where('user_id', $user_id)->select();
|
||||
if($room){
|
||||
$userinroom = 0;
|
||||
foreach ($room as $v){
|
||||
if($v['room_id'] == $room_id){
|
||||
$userinroom = $room_id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($userinroom == $room_id){
|
||||
$room_info = db::name('vs_room_visitor')->where(['id' => $room_id])->update(['room_id' => $room_id, 'user_id' => $user_id, 'updatetime' => time(),'remarks' =>'断线后重连']);
|
||||
if(!$room_info){
|
||||
return ['code' => 0, 'msg' => '更新加入房间失败', 'data' => null];
|
||||
}
|
||||
}else
|
||||
{
|
||||
$room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time(),'remarks' =>'断线后重连']);
|
||||
if(!$room_info){
|
||||
return ['code' => 0, 'msg' => '加入房间失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
}else{
|
||||
$room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time(),'remarks' =>'断线后重连']);
|
||||
if(!$room_info){
|
||||
return ['code' => 0, 'msg' => '加入房间失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
//用户在房间内切后台保留机制
|
||||
public function user_in_room_background($user_id,$room_id,$type)
|
||||
{
|
||||
if(!$room_id){
|
||||
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
$room_t = db::name('vs_room')->field('type_id,label_id')->where('id',$room_id)->find();
|
||||
if(!(($room_t['type_id'] == 1 || $room_t['type_id'] == 8) && $room_t['label_id'] == 1)){
|
||||
if($type == 1){//1-切后台,2-切前台
|
||||
$is_bg = db::name('vs_user_in_room_bg')->where(['user_id' => $user_id,'room_id' => $room_id])->find();
|
||||
if($is_bg){
|
||||
$up_bg = [
|
||||
'updatetime' => time(),
|
||||
];
|
||||
db::name('vs_user_in_room_bg')->where('id',$is_bg['id'])->update($up_bg);
|
||||
}else{
|
||||
$data = [
|
||||
'user_id' => $user_id,
|
||||
'room_id' => $room_id,
|
||||
'createtime' => time(),
|
||||
'updatetime' => time(),
|
||||
];
|
||||
$room_background = db::name('vs_user_in_room_bg')->insert($data);
|
||||
if(!$room_background){
|
||||
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
db::name('vs_user_in_room_bg')->where(['user_id' => $user_id,'room_id' => $room_id])->delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user