فهرست منبع

Merge pull request #1750 from visuddhinanda/laravel

升级pcd_book_id
visuddhinanda 2 سال پیش
والد
کامیت
6b38e7fbf0

+ 14 - 2
app/Console/Commands/UpgradePcdBookId.php

@@ -6,6 +6,8 @@ use Illuminate\Console\Command;
 use App\Models\FtsText;
 use App\Models\WbwTemplate;
 use App\Models\BookTitle;
+use App\Models\PaliText;
+use App\Models\PageNumber;
 
 class UpgradePcdBookId extends Command
 {
@@ -51,12 +53,22 @@ class UpgradePcdBookId extends Command
             if($table === 'all' || $table ==='fts'){
                 FtsText::where('book',$value->book)
                     ->where('paragraph','>=',$value->paragraph)
-                    ->update(['pcd_book_id'=>$value->id]);
+                    ->update(['pcd_book_id'=>$value->sn]);
             }
             if($table === 'all' || $table ==='wbw'){
                 WbwTemplate::where('book',$value->book)
                     ->where('paragraph','>=',$value->paragraph)
-                    ->update(['pcd_book_id'=>$value->id]);
+                    ->update(['pcd_book_id'=>$value->sn]);
+            }
+            if($table === 'all' || $table ==='pali_text'){
+                PaliText::where('book',$value->book)
+                    ->where('paragraph','>=',$value->paragraph)
+                    ->update(['pcd_book_id'=>$value->sn]);
+            }
+            if($table === 'all' || $table ==='page_number'){
+                PageNumber::where('book',$value->book)
+                    ->where('paragraph','>=',$value->paragraph)
+                    ->update(['pcd_book_id'=>$value->sn]);
             }
             $bar->advance();
         }

+ 67 - 0
app/Http/Controllers/BookTitleController.php

@@ -0,0 +1,67 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\BookTitle;
+use Illuminate\Http\Request;
+use App\Http\Resources\BookTitleResource;
+
+class BookTitleController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index()
+    {
+        //
+        $result = BookTitle::orderBy('sn')->get();
+        return $this->ok(["rows"=>BookTitleResource::collection($result),"count"=>count($result)]);
+    }
+
+    /**
+     * 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\BookTitle  $bookTitle
+     * @return \Illuminate\Http\Response
+     */
+    public function show(BookTitle $bookTitle)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\BookTitle  $bookTitle
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, BookTitle $bookTitle)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\BookTitle  $bookTitle
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(BookTitle $bookTitle)
+    {
+        //
+    }
+}

+ 8 - 7
app/Http/Controllers/NavPageController.php

@@ -37,23 +37,24 @@ class NavPageController extends Controller
      */
     public function show(string $pageNumber)
     {
-        //1-M-1-37
+        //M-99_100_101-1-37
         $id = explode('-',$pageNumber);
         if(count($id) !== 4){
             return $this->error('参数错误。参数应为4 实际得到'.count($id),400,400);
         }
-        $pageCurr = PageNumber::where('book',$id[0])
-                            ->where('type',$id[1])
+        $books = explode('_',$id[1]);
+        $pageCurr = PageNumber::whereIn('pcd_book_id',$books)
+                            ->where('type',$id[0])
                             ->where('volume',$id[2])
                             ->where('page',$id[3])
                             ->first();
-        $pagePrev = PageNumber::where('book',$id[0])
-                            ->where('type',$id[1])
+        $pagePrev = PageNumber::whereIn('pcd_book_id',$books)
+                            ->where('type',$id[0])
                             ->where('volume',$id[2])
                             ->where('page',(int)$id[3]-1)
                             ->first();
-        $pageNext = PageNumber::where('book',$id[0])
-                            ->where('type',$id[1])
+        $pageNext = PageNumber::whereIn('pcd_book_id',$books)
+                            ->where('type',$id[0])
                             ->where('volume',$id[2])
                             ->where('page',(int)$id[3]+1)
                             ->first();

+ 19 - 0
app/Http/Resources/BookTitleResource.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class BookTitleResource 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);
+    }
+}

+ 2 - 0
routes/api.php

@@ -77,6 +77,7 @@ use App\Http\Controllers\SearchPaliDataController;
 use App\Http\Controllers\SearchPaliWbwController;
 use App\Http\Controllers\SearchPageNumberController;
 use App\Http\Controllers\NavPageController;
+use App\Http\Controllers\BookTitleController;
 
 /*
 |--------------------------------------------------------------------------
@@ -207,6 +208,7 @@ Route::group(['prefix' => 'v2'],function(){
     Route::get('search-pali-wbw-books',[SearchPaliWbwController::class,'book_list']);
     Route::apiResource('search-page-number',SearchPageNumberController::class);
     Route::apiResource('nav-page',NavPageController::class);
+    Route::apiResource('book-title',BookTitleController::class);
 
     Route::get('download/{type1}/{type2}/{uuid}/{filename}', function ($type1,$type2,$uuid,$filename) {
         header("Content-Type: {$type1}/{$type1}");