diff --git a/application/api/controller/RoomPk.php b/application/api/controller/RoomPk.php index c6b2e883..701c8b8d 100644 --- a/application/api/controller/RoomPk.php +++ b/application/api/controller/RoomPk.php @@ -67,4 +67,15 @@ class RoomPk extends BaseCom $reslut = model('RoomPk')->refuse_pk($is_pk,$room_id); return V($reslut['code'], $reslut['msg'], $reslut['data']); } + + + //PK闭麦 + public function close_pk_mic() + { + $pk_id = input('pk_id', 0); + $type = input('type', 1);//1、关闭,2、开启 + $user_id = input('user_id', 0); + $reslut = model('RoomPk')->close_pk_mic($pk_id,$type,$user_id); + return V($reslut['code'], $reslut['msg'], $reslut['data']); + } } \ No newline at end of file diff --git a/application/api/model/Room.php b/application/api/model/Room.php index fb17f315..53d675a8 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1800,9 +1800,10 @@ class Room extends Model $pk_info = null; if($room_type == 1){ $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(); + ->field('pk_id,create_user_id,receive_user_id,room_id_b,create_value_a,receive_value_b,pk_times,start_time,status,updatetime,close_users')->find(); if($is_pk){ $pk_info['pk_room_id'] = $is_pk['room_id_b'];//对方房间id + $pk_info['close_users'] = $is_pk['close_users'];//本场PK闭麦用户 $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 @@ -1829,9 +1830,10 @@ class Room extends Model } }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_user_id,receive_value_b,pk_times,start_time,status,updatetime')->find(); + ->field('pk_id,create_user_id,receive_user_id,room_id_a,create_value_a,receive_user_id,receive_value_b,pk_times,start_time,status,updatetime,close_users')->find(); if($is_pk){ $pk_info['pk_room_id'] = $is_pk['room_id_a']; + $pk_info['close_users'] = $is_pk['close_users']; $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']; diff --git a/application/api/model/RoomPk.php b/application/api/model/RoomPk.php index 8984580d..4c9ccb7e 100644 --- a/application/api/model/RoomPk.php +++ b/application/api/model/RoomPk.php @@ -583,4 +583,40 @@ class RoomPk extends Model } } + + + //PK闭麦 + public function close_pk_mic($pk_id, $type, $user_id) + { + $pk_info = db::name('vs_room_pk')->where('pk_id', $pk_id)->find(); + if(!$pk_info){ + return ['code' => 0, 'msg' => '失败', 'data' => '']; + } + if($type == 1){//1、关闭,2、开启 + //有就返回成功,没有就插入 + if(strpos($pk_info['close_users'], $user_id) !== false){ + return ['code' => 1, 'msg' => '成功', 'data' => '']; + }else{ + $close = $pk_info['close_users'] .',' . $user_id; + $res = db::name('vs_room_pk')->where('pk_id', $pk_id)->update(['close_users' => $close]); + } + }else{ + //没有就返回成功,有就删掉 + if(strpos($pk_info['close_users'], $user_id) === false){ + return ['code' => 1, 'msg' => '成功', 'data' => '']; + }else{ + //转成数组 + $close_users = explode(',', $pk_info['close_users']); + array_splice($close_users, array_search($user_id, $close_users), 1);//删除 + $close_users = implode(',', $close_users);//转成字符串 + $res = db::name('vs_room_pk')->where('pk_id', $pk_id)->update(['close_users' => $close_users]); + } + } + if ($res) { + return ['code' => 1, 'msg' => '成功', 'data' => '']; + } else { + return ['code' => 0, 'msg' => '失败', 'data' => '']; + } + } + } \ No newline at end of file