mirror of https://gitee.com/karson/fastadmin.git
167 lines
4.3 KiB
PHP
167 lines
4.3 KiB
PHP
<?php
|
||
|
||
namespace app\api\controller;
|
||
|
||
use app\common\controller\Api;
|
||
use think\Db;
|
||
use think\Exception;
|
||
use think\Log;
|
||
|
||
/**
|
||
* 直播接口
|
||
*/
|
||
class Live extends Api
|
||
{
|
||
|
||
//如果$noNeedLogin为空表示所有接口都需要登录才能请求
|
||
//如果$noNeedRight为空表示所有接口都需要验证权限才能请求
|
||
//如果接口已经设置无需登录,那也就无需鉴权了
|
||
//
|
||
// 无需登录的接口,*表示全部
|
||
protected $noNeedLogin = ['test1'];
|
||
// 无需鉴权的接口,*表示全部
|
||
protected $noNeedRight = ['test2'];
|
||
|
||
public function _initialize()
|
||
{
|
||
parent::_initialize();
|
||
$this->model = model('live');
|
||
}
|
||
|
||
/**
|
||
* 读取直播流信息
|
||
*/
|
||
public function index()
|
||
{
|
||
//设置过滤方法
|
||
$this->request->filter(['strip_tags']);
|
||
// if ($this->request->isAjax())
|
||
// {
|
||
//如果发送的来源是Selectpage,则转发到Selectpage
|
||
if ($this->request->request('pkey_name')) {
|
||
return $this->selectpage();
|
||
}
|
||
|
||
|
||
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||
|
||
// $pagesize = $this->request->request("per_page");
|
||
|
||
if ($this->request->request("status")) {
|
||
$where = array(
|
||
'status' => $this->request->request("status"),
|
||
);
|
||
}
|
||
|
||
if ($this->request->request("username")) {
|
||
$username = $this->request->request("username");
|
||
// $username = 'xingchao';
|
||
$sql = "select b.*
|
||
from fa_user as a,fa_live as b
|
||
where a.id=b.user_id and a.username = '$username'";
|
||
|
||
$list = Db::query($sql);
|
||
if (!empty($list)) {
|
||
|
||
$code = trim(strrchr($list[0]['push_url'], '/'), '/');
|
||
|
||
$len1 = strlen($list[0]['push_url']);
|
||
$len2 = strlen($code);
|
||
|
||
$base_url = substr($list[0]['push_url'], 0, $len1 - $len2);
|
||
// echo $base_url;
|
||
|
||
$list = array(
|
||
'base_url' => $base_url,
|
||
'code' => $code,
|
||
);
|
||
|
||
$result = array("rows" => $list);
|
||
|
||
return (json($result));
|
||
|
||
} else {
|
||
//创建直播流
|
||
$sql = "select id
|
||
from fa_user
|
||
where username = '$username'";
|
||
|
||
$list = Db::query($sql);
|
||
$user_id = $list[0]['id'];
|
||
|
||
$code = time();
|
||
$base_url = "rtmp://47.104.165.49:1935/live/";
|
||
$push_url = $base_url . $code;
|
||
$pull_url = $push_url;
|
||
$sql = "INSERT INTO fa_live(push_url,pull_url,user_id,status) VALUES ('$push_url','$pull_url','$user_id','1')";
|
||
|
||
// echo $sql;
|
||
// exit();
|
||
$rs = Db::execute($sql);
|
||
// if ($rs === false) {
|
||
// echo '添加直播流失败';
|
||
// } else {
|
||
// echo '添加直播流成功';
|
||
// }
|
||
|
||
$list = array(
|
||
'base_url' => $base_url,
|
||
'code' => $code,
|
||
);
|
||
|
||
$result = array("rows" => $list);
|
||
return json($result);
|
||
}
|
||
}
|
||
|
||
|
||
$total = $this->model
|
||
->where($where)
|
||
->order($sort, $order)
|
||
->count();
|
||
|
||
$list = $this->model
|
||
->where($where)
|
||
->order($sort, $order)
|
||
->limit($offset, $limit)
|
||
->select();
|
||
|
||
$result = array("total" => $total, "rows" => $list);
|
||
|
||
return json($result);
|
||
|
||
|
||
// }
|
||
// return $this->view->fetch();
|
||
}
|
||
|
||
/**
|
||
* 无需登录的接口
|
||
*
|
||
*/
|
||
public function test1()
|
||
{
|
||
$this->success('返回成功', ['action' => 'test1']);
|
||
}
|
||
|
||
/**
|
||
* 需要登录的接口
|
||
*
|
||
*/
|
||
public function test2()
|
||
{
|
||
// $this->success('返回成功', ['action' => 'test2']);
|
||
|
||
}
|
||
|
||
/**
|
||
* 需要登录且需要验证有相应组的权限
|
||
*
|
||
*/
|
||
public function test3()
|
||
{
|
||
$this->success('返回成功', ['action' => 'test3']);
|
||
}
|
||
|
||
}
|