diff --git a/app/Http/Controllers/Customer/PublicController.php b/app/Http/Controllers/Customer/PublicController.php index 0e7d784..5ead0dd 100644 --- a/app/Http/Controllers/Customer/PublicController.php +++ b/app/Http/Controllers/Customer/PublicController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Customer; use App\Http\Controllers\Controller; use App\Models\Project; +use App\Models\Training; class PublicController extends Controller { @@ -25,4 +26,39 @@ class PublicController extends Controller $projects = Project::select("id","name","address")->get(); return response()->json($projects->toArray()); } + + /** + * @OA\Get( + * path="/customer/get-training-videos", + * summary="V2-获取视频列表", + * description="获取视频列表", + * @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=false, description="查询关键词"), + * @OA\Parameter(name="page", in="query", @OA\Schema(type="integer"), required=false, description="当前页码,默认为1"), + * @OA\Parameter(name="pageLength", in="query", @OA\Schema(type="integer"), required=false, description="每页数量,默认为3"), + * @OA\Response( + * response="200", + * description="获取视频列表" + * ) + * ) + */ + + public function getTrainingVideos() + { + $data = (new Training()); + if (request()->keyword) { + $keyword = request()->keyword; + $data = $data->where(function ($query) use ($keyword) { + $query + ->where("title", "like", "%{$keyword}%") + ->orWhereHas("type", function ($query) use ($keyword) { + $query->where("name", "like", "%{$keyword}%"); + }); + }); + } + $pageLength = request()->pageLength ? (int)request()->pageLength : 3; + $data = $data->with(["type"=>function($query) { + $query->select("id","name"); + }])->select("id","type_id","poster","video","published_at")->orderBy("published_at")->paginate($pageLength); + return response()->json($data->toArray()); + } } diff --git a/routes/web.php b/routes/web.php index 5b8a696..e33ea26 100644 --- a/routes/web.php +++ b/routes/web.php @@ -95,6 +95,7 @@ Route::group(["namespace" => "Customer", "prefix" => "customer"], function () { Route::post('login-by-code', 'AuthController@loginByCode'); Route::post('pay-callback', 'PayCallbackController@index'); Route::get('get-projects', 'PublicController@getProjects'); + Route::get('get-training-videos', 'PublicController@getTrainingVideos'); Route::group(['middleware' => ['authorize.jwt:customer']], function () { Route::get('get-product/{id}', 'OrdersController@getProduct');