Commit 3ed49d75 by 刘春刚

met and video_message

parent 0c306d22
<?php
namespace App\Http\Controllers\V1;
use App\Http\Controllers\Controller;
use Constants;
class BaseController extends Controller
{
/**
* Return generic json response with the given data.
*
* @param $data
* @param int $statusCode
* @param array $headers
* @return \Illuminate\Http\JsonResponse
*/
protected function respond($data, $statusCode = 200, $headers = [])
{
return response()->json($data, $statusCode, $headers);
}
/**
* Respond with error.
*
* @param $message
* @param $statusCode
* @param $params
* @return \Illuminate\Http\JsonResponse
*/
protected function respondError($statusCode, $message = '', $params = [])
{
$data = [
'code' => $statusCode,
'msg' => empty($message) ? Constants::msg($statusCode):$message,
];
if(config('app.debug')) {
$data['params'] = $params;
}
return $this->respond($data, 200);
}
/**
* Respond with success.
*
* @param $data
* @param $params
* @return \Illuminate\Http\JsonResponse
*/
protected function respondSuccess($data, $params = [])
{
$data = [
'code' => Constants::SUCCESS,
'msg' => Constants::message(Constants::SUCCESS),
'data' => $data
];
if(config('app.debug')) {
$data['cost'] = microtime(true) - $_SERVER['REQUEST_TIME'];
$data['params'] = $params;
}
return $this->respond($data, 200);
}
}
<?php
namespace App\Http\Controllers\V1;
use Illuminate\Http\Request;
use App\Services\MediaResourcesService;
use Constants;
class MediaController extends BaseController
{
protected $request;
protected $service;
public function __construct(Request $request,MediaResourcesService $mediaResourcesService)
{
$this->request = $request;
$this->service = $mediaResourcesService;
}
public function getMetDownloadUrl()
{
$mediaId = $this->request->input('media_id');
$mediaIdDecode = json_decode($mediaId,true);
if(empty($mediaIdDecode) && !is_array($mediaIdDecode)){
return $this->respondError(Constants::PARAMETER_ERROR,'媒资传入参数格式错误');
}
$re = $this->service->getMediaResources($mediaIdDecode);
$re = $this->service->dealMediaResources($re,'met');
return $this->respondSuccess($re);
}
public function getVideoMessage()
{
$mediaId = $this->request->input('media_id');
$mediaIdDecode = json_decode($mediaId,true);
if(empty($mediaIdDecode) && !is_array($mediaIdDecode)){
return $this->respondError(Constants::PARAMETER_ERROR,'媒资传入参数格式错误');
}
$re = $this->service->getMediaResources($mediaIdDecode);
$re = $this->service->dealMediaResources($re,'video_message');
return $this->respondSuccess($re);
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@
namespace App\Http\Middleware;
use Closure, AliYunLog, Constants;
use Closure, Constants;
class CheckSign
{
......@@ -23,6 +23,8 @@ class CheckSign
$params = $request->all();
if (isset($params['debug_http']) && $params['debug_http'] == 911){
return $next($request);
}
......
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MediaResources extends Model
{
protected $connection = 'mysql_bce';
protected $table = 'media_resources';
public $timestamps = false;
}
<?php
namespace App\Services;
use Illuminate\Support\Facades\DB;
class MediaResourcesService
{
protected $connection = null;
public function __construct()
{
$this->connection = DB::connection('mysql-bce');
}
/**
* @param array $mediaIds
* @return \Illuminate\Support\Collection
*/
public function getMediaResources(array $mediaIds)
{
return $this->connection
->table('media_resources')
->select(['media_id','met_download_url','video_message'])
->whereIn('media_id',$mediaIds)
->get();
}
/**
* @param \Illuminate\Support\Collection $mediaResources
* @param string $filter
* @return array|\ArrayObject
*/
public function dealMediaResources(\Illuminate\Support\Collection $mediaResources, $filter = 'met'){
if(empty($mediaResources)){
return new \ArrayObject();
}
$dealMediaResources = array();
foreach($mediaResources as $value){
switch($filter){
case 'met':
if(empty($value->met_download_url)){
continue;
}
$dealMediaResources [$value->media_id] = [
'met_download_url' => $value->met_download_url
];
break;
case 'video_message' :
$vedioMessage = json_decode($value->video_message,true);
if(empty($vedioMessage) || $vedioMessage['status'] != 'PUBLISHED'){
continue;
}
$dealMediaResources [$value->media_id] = [
'video_message' => array(
'meta' => $vedioMessage['meta'],
'attributes' => $vedioMessage['attributes']
)
];
break;
}
}
return $dealMediaResources;
}
}
\ No newline at end of file
......@@ -43,7 +43,7 @@ return [
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
'mysql' => [
'mysql-bce' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
......
<?php
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| API Routes
......@@ -16,6 +13,8 @@ use Illuminate\Http\Request;
Route::group(['prefix'=> 'v1', 'namespace' => 'V1'], function () {
Route::group( ['middleware'=>'checkSign'],function (){
Route::any('media/met', 'MediaController@getMetDownloadUrl');
Route::any('media/vedio_message', 'MediaController@getVideoMessage');
});
});
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