Commit 7ac7df1e by 杨昕

添加获取视频接口

parent 12e20d13
Pipeline #9812 passed with stages
in 33 seconds
......@@ -2,7 +2,9 @@
namespace App\Http\Controllers\Api;
use App\Model\MediaModel;
use App\Model\QiniuModel;
use App\Tool\SrsHookValidate;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
......@@ -10,11 +12,6 @@ use Qiniu\Auth;
class MediaController extends Controller
{
private $bucketList = [
'develop' => 'dev-offcncloud',
'test' => 'test-offcncloud',
'master' => 'offcncloud',
];
/**
* 获取媒资ID
......@@ -22,22 +19,20 @@ class MediaController extends Controller
* @return \Illuminate\Http\JsonResponse
* @throws \App\Exceptions\ControllerException
*/
public function index(Request $request){
$result = handler_drive(function () use ($request) {
return ["mediaID" => 'mda-'.generateRandomNum(16)];
});
return success($result);
}
public function mediaIdList(){
public function media_list(Request $request){
$result = handler_drive(function () use ($request){
SrsHookValidate::srsHookCallback($request,[
'params' => 'required'
]);
return MediaModel::getMediaList($request);
});
return success($result);
}
......@@ -49,4 +44,5 @@ class MediaController extends Controller
}
......@@ -3,6 +3,7 @@
namespace App\Model;
use App\Exceptions\DatabaseException;
use Illuminate\Support\Facades\DB;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class MediaModel extends Eloquent
......@@ -75,28 +76,46 @@ class MediaModel extends Eloquent
*/
$media_info = explode("&",$request->media_name);
if (count($media_info)!=2){
throw new \Exception('视频名称格式不对');
}
$mediaCatg = MediaCategoryModel::where('_id',$request->media_type)->first();
if (empty($mediaCatg)){
throw new \Exception("媒资类别不存在");
}
/**
* 处理文件名称,确认是否包含"&"符合
*/
if (count($media_info)>=2){
$data = [
'_id' => $media_id,
'media_name' => $request->media_name,
'media_type' => $mediaCatg->_id,
'media_category'=> $mediaCatg['name'],
'class_id' => $media_info[0],
'class_name' => $media_info[1],
'book_num' => $media_info[0],
'book_name' => $media_info[1],
'media_url' => $request->media_url,
'access_key' => $request->access_key,
'secret_key' => $request->secret_key,
'create_time' => date('Y-m-d H:i:s',time())
];
}else{
$data = [
'_id' => $media_id,
'media_name' => $request->media_name,
'media_type' => $mediaCatg->_id,
'media_category'=> $mediaCatg['name'],
'book_num' => '',
'book_name' => $request->media_name,
'media_url' => $request->media_url,
'access_key' => $request->access_key,
'secret_key' => $request->secret_key,
'create_time' => date('Y-m-d H:i:s',time())
];
}
$id = MediaModel::insertGetId($data);
}catch (\Exception $exception){
throw new DatabaseException($exception->getMessage());
......@@ -156,8 +175,8 @@ class MediaModel extends Eloquent
'media_name' => $request->media_name,
'media_type' => $mediaCatg->_id,
'media_category'=> $mediaCatg['name'],
'class_id' => $media_info[0],
'class_name' => $media_info[1],
'book_num' => $media_info[0],
'book_name' => $media_info[1],
'media_url' => $request->media_url,
'access_key' => $request->access_key,
'secret_key' => $request->secret_key,
......@@ -175,4 +194,49 @@ class MediaModel extends Eloquent
return $flag;
}
/**
* 根据课件编号获取媒资编号与视频地址
* @param $request
* @return mixed
* @throws DatabaseException
*/
public static function getMediaList($request){
try{
$params = json_decode($request->params,true);
if (empty($params)){
throw new \Exception("参数格式有误");
}
$tmp = [];
foreach ($params as $param){
if (!isset($param['mediaCatg']) || !isset($param['bookNum'])){
throw new \Exception("格式有误");
}
$media_name= $param['mediaCatg'];
$media_ids = $param['bookNum'];
$media_catg = MediaCategoryModel::where('name',$media_name)->first();
if (empty($media_catg)){
throw new \Exception("媒资类别不存在");
}
$tmp[] = MediaModel::select("_id","media_url","book_num")->whereIn('book_num',$media_ids)->get();
}
}catch (\Exception $exception){
throw new DatabaseException($exception->getMessage());
}
$res = [];
foreach ($tmp as $item){
$res[] = $item->groupBy("book_num");
}
return $res;
}
}
......@@ -32,10 +32,9 @@ Route::group(['namespace' => 'Api', 'prefix' => 'v1', 'middleware' => ['auth']],
});
Route::group(['namespace' => 'Api', 'prefix' => 'v1', 'middleware' => ['auth']], function () {
Route::group(['namespace' => 'Api', 'prefix' => 'user'], function () {
Route::post("media_list","MediaController@media_list");
});
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment