visuddhinanda vor 1 Jahr
Ursprung
Commit
4d90b04701

+ 91 - 0
api-v8/app/Http/Controllers/ChapterController.php

@@ -0,0 +1,91 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\PaliText;
+use Illuminate\Http\Request;
+use App\Http\Resources\ChapterResource;
+
+class ChapterController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index(Request $request)
+    {
+        //
+        switch ($request->get('view')) {
+            case 'toc':
+                $chapter = PaliText::where('book',$request->get('book'))
+                        ->where('paragraph',$request->get('para'))
+                        ->first();
+                $start = $request->get('para');
+                $end = $request->get('para') + $chapter->chapter_len -1 ;
+                $table = PaliText::where('book',$request->get('book'))
+                    ->whereBetween('paragraph',[$start,$end])
+                    ->where('level','<',100)
+                    ->select(['book','paragraph','level','text','chapter_strlen']);
+                break;
+        }
+        //获取记录总条数
+        $count = $table->count();
+        //处理排序
+        $table = $table->orderBy($request->get("order",'paragraph'),
+                                    $request->get("dir",'asc'));
+        //处理分页
+        $table = $table->skip($request->get("offset",0))
+                        ->take($request->get("limit",1000));
+        $result = $table->get();
+        return $this->ok([
+            "rows"=>ChapterResource::collection($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\PaliText  $paliText
+     * @return \Illuminate\Http\Response
+     */
+    public function show(PaliText $paliText)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\PaliText  $paliText
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, PaliText $paliText)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\PaliText  $paliText
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(PaliText $paliText)
+    {
+        //
+    }
+}

+ 19 - 0
api-v8/app/Http/Resources/ChapterResource.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class ChapterResource extends JsonResource
+{
+    /**
+     * Transform the resource into an array.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
+     */
+    public function toArray($request)
+    {
+        return parent::toArray($request);
+    }
+}