Commit 599070db by 杨昕

添加处理未包含封面图片的数据

parent 8d89b11f
......@@ -356,4 +356,27 @@ class MediaController extends Controller
return success($data);
}
/**
* @throws FormException
* @throws \App\Exceptions\ControllerException
* @throws \App\Exceptions\DatabaseException
*/
public function runScreenShot(Request $request){
$data = handler_drive(function () use ($request) {
SrsHookValidate::srsHookCallback($request,[
'start_time' => 'required|date',
'end_time' => 'required|date|after_or_equal:start_time',
],null,[
'start_time.date' => '开始时间格式错误',
'start_time.required'=> '开始时间不能为空',
'end_time.required' => '结束时间不能为空',
'end_time.date' => '结束时间格式错误',
'end_time.after_or_equal' => '结束时间不能小于开始时间'
]);
return MediaModel::runScreenShotMediaList($request);
});
return success($data);
}
}
......@@ -1133,4 +1133,71 @@ class MediaModel extends Eloquent
LogModel::addlog(["更新媒资 screenshot 数据成功 " => $item]);
}
/**
* @param $request
* @return mixed
* @throws DatabaseException
*/
public static function runScreenShotMediaList($request)
{
try {
$medias = MediaModel::query()->raw(function ($collection) use ($request) {
$limit = (isset($request->page_size) ? (int)($request->page_size) : Constant::PAGE_NUMBER);
if ($limit > self::$max_page_size) {
$limit = self::$max_page_size;
}
$page = $request->page ?? 1;
$aggregate = [];
$match = [
'status' => "1",
"screen" => ["\$ne" => 'null']
];
if (isset($request->start_time) && !empty($request->start_time)) {
$start_time = new UTCDateTime(strtotime($request->start_time) * 1000);
$match['start_time'] = ['$gt' => $start_time];
}
if (isset($request->end_time) && !empty($request->end_time)) {
$end_time = new UTCDateTime(strtotime($request->end_time) * 1000);;
$match['end_time'] = ['$lt' => $end_time];
}
$aggregate[]['$match'] = $match;
$count = MediaModel::where($match)->count();
$skip = ((empty($request->page) ? 1 : $request->page) - 1) * $limit;
$aggregate[]['$skip'] = $skip;
$aggregate[]['$limit'] = $limit;
$tmp_arr = $collection->aggregate($aggregate)->toArray();
$tmp_arr = collect($tmp_arr);
/**
* 将mongoDate 转化为普通时间
*/
foreach ($tmp_arr as $media) {
$tz = new \DateTimeZone("Asia/Shanghai");
if (is_object($media['create_time'])) {
$create_time = $media['create_time']->toDateTime();
$create_time->setTimezone($tz);
$media['create_time'] = $create_time->format('Y-m-d H:i:s');
}
}
return new LengthAwarePaginator($tmp_arr, $count, $limit, $page, [
'path' => Paginator::resolveCurrentPath(),
'pageName' => 'page',
]);
});
} catch (\Exception $exception) {
throw new DatabaseException($exception->getMessage());
}
return $medias;
}
}
......@@ -55,4 +55,6 @@ Route::group(['namespace' => 'Api', 'prefix' => 'user','middleware' => ['api']],
//Route::get("media_url_change","MediaController@handleMediaUrl");
#处理媒资封面图片以及分辨率
Route::post("screenShotCallback","MediaController@screenShotCallback");
#处理之前没有分辨率的旧数据
Route::post("runScreenShot","MediaController@runScreenShot");
});
\ 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