find($rid); if(!$room_info){ return ['code' => 201, 'msg' => '参数错误', 'data' => null]; } //是否有权限 // $room_admin_uid_arr = explode(',', $room_info['room_admin_uid']); // if ($uid != $room_info['room_owner_uid'] && !in_array($uid, $room_admin_uid_arr)) { // return ['code' => 201, 'msg' => '无权限操作', 'data' => null]; // } $room_admin_uid_arr = db::name('room_admin')->where('rid', $rid)->where('is_delete', 1)->column('uid'); $room_host_uid_arr = db::name('room_host')->where('rid', $rid)->where('is_delete', 1)->column('uid'); // if ($uid != $room_info['room_owner_uid'] && !in_array($uid, $room_admin_uid_arr) && !in_array($uid, $room_host_uid_arr)) { if ($uid != $room_info['room_owner_uid'] && !in_array($uid, $room_host_uid_arr)) { return ['code' => 201, 'msg' => '无权限操作', 'data' => null]; } //修改状态 $update = []; $update['game_status'] = 1; $update['game_id'] = $game_id; $update['update_time'] = time(); $reslut = db::name('room')->where('rid', $rid)->update($update); if(!$reslut){ return ['code' => 201, 'msg' => '开始失败', 'data' => null]; } //发送socket $data = []; $data['rid'] = $rid; $data['game_id'] = $game_id; $data['game_status'] = 1; $push_data = []; $push_data['code'] = 330; $push_data['msg'] = "房间游戏开始"; $push_data['data'] = $data; model('api/WebSocketPush')->send_to_group($rid, $push_data); model('Room')->push_room_micro_data($rid); //推送最新房间麦位信息 return ['code' => 200, 'msg' => '游戏开始', 'data' => $data]; } //房间结束游戏 public function room_game_end($uid, $rid, $game_id){ $room_info = db::name('room')->find($rid); if(!$room_info){ return ['code' => 201, 'msg' => '参数错误', 'data' => null]; } //是否有权限 // $room_admin_uid_arr = explode(',', $room_info['room_admin_uid']); // if ($uid != $room_info['room_owner_uid'] && !in_array($uid, $room_admin_uid_arr)) { // return ['code' => 201, 'msg' => '无权限操作', 'data' => null]; // } $room_admin_uid_arr = db::name('room_admin')->where('rid', $rid)->where('is_delete', 1)->column('uid'); $room_host_uid_arr = db::name('room_host')->where('rid', $rid)->where('is_delete', 1)->column('uid'); // if ($uid != $room_info['room_owner_uid'] && !in_array($uid, $room_admin_uid_arr) && !in_array($uid, $room_host_uid_arr)) { if ($uid != $room_info['room_owner_uid'] && !in_array($uid, $room_host_uid_arr)) { return ['code' => 201, 'msg' => '无权限操作', 'data' => null]; } //修改状态 $update = []; $update['game_status'] = 2; $update['game_id'] = 0; $update['update_time'] = time(); $reslut = db::name('room')->where('rid', $rid)->update($update); if(!$reslut){ return ['code' => 201, 'msg' => '结束失败', 'data' => null]; } //发送socket $data = []; $data['rid'] = $rid; $data['game_id'] = $game_id; $data['game_status'] = 2; $push_data = []; $push_data['code'] = 331; $push_data['msg'] = "房间游戏结束"; $push_data['data'] = $data; model('api/WebSocketPush')->send_to_group($rid, $push_data); model('Room')->push_room_micro_data($rid); //推送最新房间麦位信息 return ['code' => 200, 'msg' => '游戏结束', 'data' => $data]; } }