NavPageController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\PageNumber;
  4. use Illuminate\Http\Request;
  5. use App\Http\Resources\NavPageResource;
  6. class NavPageController extends Controller
  7. {
  8. /**
  9. * Display a listing of the resource.
  10. *
  11. * @return \Illuminate\Http\Response
  12. */
  13. public function index()
  14. {
  15. //
  16. }
  17. /**
  18. * Store a newly created resource in storage.
  19. *
  20. * @param \Illuminate\Http\Request $request
  21. * @return \Illuminate\Http\Response
  22. */
  23. public function store(Request $request)
  24. {
  25. //
  26. }
  27. /**
  28. * Display the specified resource.
  29. *
  30. * @param string $pageNumber
  31. * @return \Illuminate\Http\Response
  32. */
  33. public function show(string $pageNumber)
  34. {
  35. //1-M-1-37
  36. $id = explode('-',$pageNumber);
  37. if(count($id) !== 4){
  38. return $this->error('参数错误。参数应为4 实际得到'.count($id),400,400);
  39. }
  40. $pageCurr = PageNumber::where('book',$id[0])
  41. ->where('type',$id[1])
  42. ->where('volume',$id[2])
  43. ->where('page',$id[3])
  44. ->first();
  45. $pagePrev = PageNumber::where('book',$id[0])
  46. ->where('type',$id[1])
  47. ->where('volume',$id[2])
  48. ->where('page',(int)$id[3]-1)
  49. ->first();
  50. $pageNext = PageNumber::where('book',$id[0])
  51. ->where('type',$id[1])
  52. ->where('volume',$id[2])
  53. ->where('page',(int)$id[3]+1)
  54. ->first();
  55. return $this->ok([
  56. 'curr'=>$pageCurr? new NavPageResource($pageCurr):null,
  57. 'prev'=>$pagePrev? new NavPageResource($pagePrev):null,
  58. 'next'=>$pageNext? new NavPageResource($pageNext):null,
  59. ]);
  60. }
  61. /**
  62. * Update the specified resource in storage.
  63. *
  64. * @param \Illuminate\Http\Request $request
  65. * @param \App\Models\PageNumber $pageNumber
  66. * @return \Illuminate\Http\Response
  67. */
  68. public function update(Request $request, PageNumber $pageNumber)
  69. {
  70. //
  71. }
  72. /**
  73. * Remove the specified resource from storage.
  74. *
  75. * @param \App\Models\PageNumber $pageNumber
  76. * @return \Illuminate\Http\Response
  77. */
  78. public function destroy(PageNumber $pageNumber)
  79. {
  80. //
  81. }
  82. }