ChapterController.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\PaliText;
  4. use Illuminate\Http\Request;
  5. use App\Http\Resources\ChapterResource;
  6. class ChapterController extends Controller
  7. {
  8. /**
  9. * Display a listing of the resource.
  10. *
  11. * @return \Illuminate\Http\Response
  12. */
  13. public function index(Request $request)
  14. {
  15. //
  16. switch ($request->get('view')) {
  17. case 'toc':
  18. $chapter = PaliText::where('book',$request->get('book'))
  19. ->where('paragraph',$request->get('para'))
  20. ->first();
  21. $start = $request->get('para');
  22. $end = $request->get('para') + $chapter->chapter_len -1 ;
  23. $table = PaliText::where('book',$request->get('book'))
  24. ->whereBetween('paragraph',[$start,$end])
  25. ->where('level','<',100)
  26. ->select(['book','paragraph','level','text','chapter_strlen']);
  27. break;
  28. }
  29. //获取记录总条数
  30. $count = $table->count();
  31. //处理排序
  32. $table = $table->orderBy($request->get("order",'paragraph'),
  33. $request->get("dir",'asc'));
  34. //处理分页
  35. $table = $table->skip($request->get("offset",0))
  36. ->take($request->get("limit",1000));
  37. $result = $table->get();
  38. return $this->ok([
  39. "rows"=>ChapterResource::collection($result),
  40. "count"=>$count
  41. ]);
  42. }
  43. /**
  44. * Store a newly created resource in storage.
  45. *
  46. * @param \Illuminate\Http\Request $request
  47. * @return \Illuminate\Http\Response
  48. */
  49. public function store(Request $request)
  50. {
  51. //
  52. }
  53. /**
  54. * Display the specified resource.
  55. *
  56. * @param \App\Models\PaliText $paliText
  57. * @return \Illuminate\Http\Response
  58. */
  59. public function show(PaliText $paliText)
  60. {
  61. //
  62. }
  63. /**
  64. * Update the specified resource in storage.
  65. *
  66. * @param \Illuminate\Http\Request $request
  67. * @param \App\Models\PaliText $paliText
  68. * @return \Illuminate\Http\Response
  69. */
  70. public function update(Request $request, PaliText $paliText)
  71. {
  72. //
  73. }
  74. /**
  75. * Remove the specified resource from storage.
  76. *
  77. * @param \App\Models\PaliText $paliText
  78. * @return \Illuminate\Http\Response
  79. */
  80. public function destroy(PaliText $paliText)
  81. {
  82. //
  83. }
  84. }