Просмотр исходного кода

Merge pull request #1902 from visuddhinanda/laravel

add ChapterIndexController
visuddhinanda 2 лет назад
Родитель
Сommit
c0af077916

+ 6 - 0
app/Http/Controllers/ChannelController.php

@@ -174,6 +174,12 @@ class ChannelController extends Controller
         if($request->has("type")){
             $table = $table->where('type', $request->get("type"));
         }
+        if($request->has("updated_at")){
+            $table = $table->where('updated_at','>', $request->get("updated_at"));
+        }
+        if($request->has("created_at")){
+            $table = $table->where('created_at','>', $request->get("created_at"));
+        }
         //获取记录总条数
         $count = $table->count();
         //处理排序

+ 88 - 0
app/Http/Controllers/ChapterIndexController.php

@@ -0,0 +1,88 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\ProgressChapter;
+use App\Models\Channel;
+use Illuminate\Http\Request;
+
+class ChapterIndexController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index(Request $request)
+    {
+        //
+        switch ($request->get('view')) {
+            case 'public':
+                $channels = Channel::where('status',30)->select('uid');
+                $table = ProgressChapter::whereIn('channel_id',$channels);
+            break;
+        }
+        if($request->has("updated_at")){
+            $table = $table->where('updated_at','>', $request->get("updated_at"));
+        }
+        if($request->has("created_at")){
+            $table = $table->where('created_at','>', $request->get("created_at"));
+        }
+        //获取记录总条数
+        $count = $table->count();
+        //处理排序
+        $table = $table->orderBy($request->get("order",'created_at'),
+                                 $request->get("dir",'desc'));
+        //处理分页
+        $table = $table->skip($request->get("offset",0))
+                       ->take($request->get("limit",200));
+        //获取数据
+        $result = $table->get();
+        return $this->ok(["rows"=>$result,"count"=>$count]);
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  \App\Models\ProgressChapter  $progressChapter
+     * @return \Illuminate\Http\Response
+     */
+    public function show(ProgressChapter $progressChapter)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\ProgressChapter  $progressChapter
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, ProgressChapter $progressChapter)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\ProgressChapter  $progressChapter
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(ProgressChapter $progressChapter)
+    {
+        //
+    }
+}

+ 2 - 0
routes/api.php

@@ -86,6 +86,7 @@ use App\Http\Controllers\SentencesInChapterController;
 use App\Http\Controllers\CompoundController;
 use App\Http\Controllers\NotificationController;
 use App\Http\Controllers\InteractiveController;
+use App\Http\Controllers\ChapterIndexController;
 
 /*
 |--------------------------------------------------------------------------
@@ -227,6 +228,7 @@ Route::group(['prefix' => 'v2'],function(){
     Route::apiResource('compound',CompoundController::class);
     Route::apiResource('notification',NotificationController::class);
     Route::apiResource('interactive',InteractiveController::class);
+    Route::apiResource('chapter-index',ChapterIndexController::class);
 
     Route::get('download/{type1}/{type2}/{uuid}/{filename}', function ($type1,$type2,$uuid,$filename) {
         header("Content-Type: {$type1}/{$type1}");