Commit 7ac7df1e by 杨昕

添加获取视频接口

parent 12e20d13
Pipeline #9812 passed with stages
in 33 seconds
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
namespace App\Http\Controllers\Api; namespace App\Http\Controllers\Api;
use App\Model\MediaModel;
use App\Model\QiniuModel; use App\Model\QiniuModel;
use App\Tool\SrsHookValidate;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
...@@ -10,11 +12,6 @@ use Qiniu\Auth; ...@@ -10,11 +12,6 @@ use Qiniu\Auth;
class MediaController extends Controller class MediaController extends Controller
{ {
private $bucketList = [
'develop' => 'dev-offcncloud',
'test' => 'test-offcncloud',
'master' => 'offcncloud',
];
/** /**
* 获取媒资ID * 获取媒资ID
...@@ -22,22 +19,20 @@ class MediaController extends Controller ...@@ -22,22 +19,20 @@ class MediaController extends Controller
* @return \Illuminate\Http\JsonResponse * @return \Illuminate\Http\JsonResponse
* @throws \App\Exceptions\ControllerException * @throws \App\Exceptions\ControllerException
*/ */
public function index(Request $request){ public function media_list(Request $request){
$result = handler_drive(function () use ($request) {
return ["mediaID" => 'mda-'.generateRandomNum(16)];
});
return success($result);
}
public function mediaIdList(){
$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 ...@@ -49,4 +44,5 @@ class MediaController extends Controller
} }
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App\Model; namespace App\Model;
use App\Exceptions\DatabaseException; use App\Exceptions\DatabaseException;
use Illuminate\Support\Facades\DB;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class MediaModel extends Eloquent class MediaModel extends Eloquent
...@@ -75,27 +76,45 @@ class MediaModel extends Eloquent ...@@ -75,27 +76,45 @@ class MediaModel extends Eloquent
*/ */
$media_info = explode("&",$request->media_name); $media_info = explode("&",$request->media_name);
if (count($media_info)!=2){
throw new \Exception('视频名称格式不对');
}
$mediaCatg = MediaCategoryModel::where('_id',$request->media_type)->first(); $mediaCatg = MediaCategoryModel::where('_id',$request->media_type)->first();
if (empty($mediaCatg)){ if (empty($mediaCatg)){
throw new \Exception("媒资类别不存在"); throw new \Exception("媒资类别不存在");
} }
$data = [ /**
'_id' => $media_id, * 处理文件名称,确认是否包含"&"符合
'media_name' => $request->media_name, */
'media_type' => $mediaCatg->_id, if (count($media_info)>=2){
'media_category'=> $mediaCatg['name'],
'class_id' => $media_info[0], $data = [
'class_name' => $media_info[1], '_id' => $media_id,
'media_url' => $request->media_url, 'media_name' => $request->media_name,
'access_key' => $request->access_key, 'media_type' => $mediaCatg->_id,
'secret_key' => $request->secret_key, 'media_category'=> $mediaCatg['name'],
'create_time' => date('Y-m-d H:i:s',time()) '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); $id = MediaModel::insertGetId($data);
}catch (\Exception $exception){ }catch (\Exception $exception){
...@@ -156,8 +175,8 @@ class MediaModel extends Eloquent ...@@ -156,8 +175,8 @@ class MediaModel extends Eloquent
'media_name' => $request->media_name, 'media_name' => $request->media_name,
'media_type' => $mediaCatg->_id, 'media_type' => $mediaCatg->_id,
'media_category'=> $mediaCatg['name'], 'media_category'=> $mediaCatg['name'],
'class_id' => $media_info[0], 'book_num' => $media_info[0],
'class_name' => $media_info[1], 'book_name' => $media_info[1],
'media_url' => $request->media_url, 'media_url' => $request->media_url,
'access_key' => $request->access_key, 'access_key' => $request->access_key,
'secret_key' => $request->secret_key, 'secret_key' => $request->secret_key,
...@@ -175,4 +194,49 @@ class MediaModel extends Eloquent ...@@ -175,4 +194,49 @@ class MediaModel extends Eloquent
return $flag; 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']], ...@@ -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