Commit e9b2513e by 杨昕

添加时长

parent c94ff2d3
Pipeline #10607 passed with stages
in 43 seconds
...@@ -9,7 +9,9 @@ use App\Tool\SrsHookValidate; ...@@ -9,7 +9,9 @@ use App\Tool\SrsHookValidate;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use MongoBinData;
use MongoDB\BSON\UTCDateTime;
use Qiniu\Auth; use Qiniu\Auth;
class MediaController extends Controller class MediaController extends Controller
...@@ -112,6 +114,11 @@ class MediaController extends Controller ...@@ -112,6 +114,11 @@ class MediaController extends Controller
public function hookRestoreMedia(Request $request){ public function hookRestoreMedia(Request $request){
$id = handler_drive(function () use ($request) { $id = handler_drive(function () use ($request) {
SrsHookValidate::srsHookCallback($request,array_merge([ SrsHookValidate::srsHookCallback($request,array_merge([
...@@ -136,7 +143,7 @@ class MediaController extends Controller ...@@ -136,7 +143,7 @@ class MediaController extends Controller
$request->replace(array_merge($request->all(),$params)); $request->replace(array_merge($request->all(),$params));
$id = MediaModel::hookRestoreMedia($request,'baidu'); $id = MediaModel::hookRestoreMedia($request);
return $id; return $id;
}); });
...@@ -149,7 +156,7 @@ class MediaController extends Controller ...@@ -149,7 +156,7 @@ class MediaController extends Controller
* @return \Illuminate\Http\JsonResponse * @return \Illuminate\Http\JsonResponse
* @throws \App\Exceptions\ControllerException * @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) { $id = handler_drive(function () use ($request,$media_id) {
...@@ -166,10 +173,23 @@ class MediaController extends Controller ...@@ -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 ...@@ -114,16 +114,17 @@ class MediaModel extends Eloquent
*/ */
foreach ($tmp_arr as $media){ foreach ($tmp_arr as $media){
if (is_object($media['end_time'])){ if (is_object($media['start_time'])){
$media['end_time'] = Carbon::parse($media['end_time']['date'])->toDateTimeString(); $media['start_time'] = Carbon::parse(strtotime($media['start_time']))->toDateTimeString();
} }
if (is_object($media['start_time'])){ if (is_object($media['end_time'])){
$media['start_time'] = Carbon::parse($media['start_time']['date'])->toDateTimeString(); $media['end_time'] = Carbon::parse(strtotime($media['end_time']))->toDateTimeString();
} }
if (is_object($media['create_time'])){ 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 ...@@ -181,18 +182,13 @@ class MediaModel extends Eloquent
$media_url = str_replace("http:","https:",$media_url); $media_url = str_replace("http:","https:",$media_url);
/** /**
* 构造开始时间,结束时间 * 构造开始时间,结束时间
*/ */
$start_time = strtotime($request->start_time); $start_time = new UTCDateTime(strtotime($request->start_time) * 1000);
$end_time = strtotime($request->end_time); $end_time = new UTCDateTime(strtotime($request->end_time) * 1000);;
$create_time = new UTCDateTime(time() * 1000);;
$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();
/** /**
...@@ -210,12 +206,13 @@ class MediaModel extends Eloquent ...@@ -210,12 +206,13 @@ class MediaModel extends Eloquent
'media_url' => $media_url, 'media_url' => $media_url,
'access_key' => $request->access_key, 'access_key' => $request->access_key,
'secret_key' => $request->secret_key, 'secret_key' => $request->secret_key,
'create_time' => $request->create_time??$create_time, 'create_time' => $create_time,
'description' => $request->description, 'description' => $request->description,
'username' => $request->token_username,//员工工号 'username' => $request->token_username,//员工工号
'user_id' => $request->token_user_id, 'user_id' => $request->token_user_id,
'start_time' => $start_time, 'start_time' => $start_time,
'end_time' => $end_time, 'end_time' => $end_time,
'duration' => $request->duration??0
]; ];
}else{ }else{
...@@ -234,14 +231,12 @@ class MediaModel extends Eloquent ...@@ -234,14 +231,12 @@ class MediaModel extends Eloquent
'description' => $request->description, 'description' => $request->description,
'username' => $request->token_username,//员工工号 'username' => $request->token_username,//员工工号
'user_id' => $request->token_user_id, 'user_id' => $request->token_user_id,
'start_time' => $request->start_time??'', 'start_time' => $start_time,
'end_time' => $request->end_time??'', 'end_time' => $end_time??'',
'duration' => $request->duration??0
]; ];
} }
if ($category == 'baidu'){
$data['status'] = 0;
}
$id = MediaModel::insertGetId($data); $id = MediaModel::insertGetId($data);
...@@ -471,6 +466,12 @@ class MediaModel extends Eloquent ...@@ -471,6 +466,12 @@ class MediaModel extends Eloquent
return $media; return $media;
} }
/**
* 处理异常视频链接
* @param $request
* @return \Illuminate\Database\Query\Expression
* @throws DatabaseException
*/
public static function handleMediaUrl($request){ public static function handleMediaUrl($request){
try{ try{
...@@ -593,4 +594,122 @@ class MediaModel extends Eloquent ...@@ -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