初始化代码
This commit is contained in:
113
application/api/model/AgoraGame.php
Normal file
113
application/api/model/AgoraGame.php
Normal file
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
use think\facade\Env;
|
||||
|
||||
class AgoraGame extends Model
|
||||
{
|
||||
|
||||
//房间开始游戏
|
||||
public function room_game_start($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'] = 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];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user