Commit e9b2513e by 杨昕

添加时长

parent c94ff2d3
Pipeline #10607 passed with stages
in 43 seconds
......@@ -9,7 +9,9 @@ use App\Tool\SrsHookValidate;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use MongoBinData;
use MongoDB\BSON\UTCDateTime;
use Qiniu\Auth;
class MediaController extends Controller
......@@ -112,6 +114,11 @@ class MediaController extends Controller
public function hookRestoreMedia(Request $request){
$id = handler_drive(function () use ($request) {
SrsHookValidate::srsHookCallback($request,array_merge([
......@@ -136,7 +143,7 @@ class MediaController extends Controller
$request->replace(array_merge($request->all(),$params));
$id = MediaModel::hookRestoreMedia($request,'baidu');
$id = MediaModel::hookRestoreMedia($request);
return $id;
});
......@@ -149,7 +156,7 @@ class MediaController extends Controller
* @return \Illuminate\Http\JsonResponse
* @throws \App\Exceptions\ControllerException
*/
public static function updateMediaStatus(Request $request,$media_id){
public function updateMediaStatus(Request $request,$media_id){
$id = handler_drive(function () use ($request,$media_id) {
......@@ -166,10 +173,23 @@ class MediaController extends Controller
}
/**
* 更新数据日期
* @param Request $request
* @return \Illuminate\Http\JsonResponse
* @throws \App\Exceptions\ControllerException
*/
public function updateDatetime(Request $request){
$id = handler_drive(function () use ($request) {
$id = MediaModel::updateDatetime($request);
return $id;
});
return success($id);
}
}
......@@ -114,16 +114,17 @@ class MediaModel extends Eloquent
*/
foreach ($tmp_arr as $media){
if (is_object($media['end_time'])){
$media['end_time'] = Carbon::parse($media['end_time']['date'])->toDateTimeString();
if (is_object($media['start_time'])){
$media['start_time'] = Carbon::parse(strtotime($media['start_time']))->toDateTimeString();
}
if (is_object($media['start_time'])){
$media['start_time'] = Carbon::parse($media['start_time']['date'])->toDateTimeString();
if (is_object($media['end_time'])){
$media['end_time'] = Carbon::parse(strtotime($media['end_time']))->toDateTimeString();
}
if (is_object($media['create_time'])){
$media['create_time'] = Carbon::parse($media['create_time']['date'])->toDateTimeString();
$media['create_time'] = Carbon::parse(strtotime($media['create_time']))->toDateTimeString();
}
}
......@@ -181,18 +182,13 @@ class MediaModel extends Eloquent
$media_url = str_replace("http:","https:",$media_url);
/**
* 构造开始时间,结束时间
*/
$start_time = strtotime($request->start_time);
$end_time = strtotime($request->end_time);
$start_time = Carbon::create(date('Y',$start_time),date('m',$start_time),12,
date('H',$start_time),date('i',$start_time),date('s',$start_time));
$end_time = Carbon::create(date('Y',$end_time),date('m',$end_time),date('d',$end_time),
date('H',$end_time),date('i',$end_time),date('s',$end_time));
$create_time = Carbon::now();
$start_time = new UTCDateTime(strtotime($request->start_time) * 1000);
$end_time = new UTCDateTime(strtotime($request->end_time) * 1000);;
$create_time = new UTCDateTime(time() * 1000);;
/**
......@@ -210,12 +206,13 @@ class MediaModel extends Eloquent
'media_url' => $media_url,
'access_key' => $request->access_key,
'secret_key' => $request->secret_key,
'create_time' => $request->create_time??$create_time,
'create_time' => $create_time,
'description' => $request->description,
'username' => $request->token_username,//员工工号
'user_id' => $request->token_user_id,
'start_time' => $start_time,
'end_time' => $end_time,
'duration' => $request->duration??0
];
}else{
......@@ -234,14 +231,12 @@ class MediaModel extends Eloquent
'description' => $request->description,
'username' => $request->token_username,//员工工号
'user_id' => $request->token_user_id,
'start_time' => $request->start_time??'',
'end_time' => $request->end_time??'',
'start_time' => $start_time,
'end_time' => $end_time??'',
'duration' => $request->duration??0
];
}
if ($category == 'baidu'){
$data['status'] = 0;
}
$id = MediaModel::insertGetId($data);
......@@ -471,6 +466,12 @@ class MediaModel extends Eloquent
return $media;
}
/**
* 处理异常视频链接
* @param $request
* @return \Illuminate\Database\Query\Expression
* @throws DatabaseException
*/
public static function handleMediaUrl($request){
try{
......@@ -593,4 +594,122 @@ class MediaModel extends Eloquent
}
/**
* 更新媒资时间
* @param $request
* @return \Illuminate\Database\Query\Expression
* @throws DatabaseException
*/
public static function updateDatetime($request){
try{
$medias = MediaModel::query()->raw(function ($collection) use($request){
$limit = (isset($request->page_size) ? (int)($request->page_size) : Constant::PAGE_NUMBER) ;
$page = $request->page??1;
/**
* 默认降序
*/
$sort = -1;
if ($request->sort == 'asc'){
$sort = 1;
}
if (isset($request->media_id) && !empty($request->media_id)){
$aggregate[]['$match']['_id'] = $request->media_id;
}
//$aggregate[]['$match']['media_url'] = ['$regex' => 'qcoenfz67.bkt.clouddn.com' ];
if (isset($request->username) && !empty($request->username)){
$aggregate[]['$match']['username'] = $request->username;
}
$aggregate[]['$sort'] = ['start_time' => $sort];
$aggregate1=$aggregate;
$aggregate1[]['$group'] = [
'_id' => array(),//更具性别进行分组
'count'=>array('$sum'=>1)
];
$count = $collection->aggregate($aggregate1)->toArray();
if (isset($count[0])){
$count = $count[0]['count'];
}else{
$count = 0;
}
//$count = sizeof($collection->aggregate($aggregate)->toArray());
$skip = ((empty($request->page) ? 1 : $request->page)-1) * $limit;
$aggregate[]['$skip'] = $skip;
$aggregate[]['$limit'] = $limit;
return new LengthAwarePaginator($collection->aggregate($aggregate)->toArray(), $count, $limit, $page,[
'path' => Paginator::resolveCurrentPath(),
'pageName' => 'page',
]);
});
if (!empty($medias)){
foreach ($medias as $media){
$start_time = $media['start_time'];
$end_time = $media['end_time'];
$create_time = $media['create_time'];
/**
* 构造开始时间,结束时间
*/
if (!is_object($media['start_time'])){
$start_time = strtotime($media['start_time']);
$start_time = new UTCDateTime($start_time * 1000);
}
if (!is_object($media['end_time'])){
$end_time = strtotime($media['end_time']);
$end_time = new UTCDateTime($end_time * 1000);
}
if (!is_object($media['create_time'])){
$create_time = strtotime($media['create_time']);
$create_time = new UTCDateTime($create_time * 1000);
}
$data = [
'start_time' => $start_time,
'end_time' => $end_time,
'create_time'=> $create_time,
];
$flag = MediaModel::where("_id",$media->_id)->update($data);
if ($flag==0){
throw new \Exception("更新失败");
}
}
}
}catch (\Exception $exception){
throw new DatabaseException($exception->getMessage());
}
return $medias;
}
}
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