TutorialController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Requests\Admin\TutorialSave;
  4. use App\Http\Requests\Admin\TutorialSort;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. use App\Models\Tutorial;
  8. use Illuminate\Support\Facades\DB;
  9. class TutorialController extends Controller
  10. {
  11. public function fetch(Request $request)
  12. {
  13. return response([
  14. 'data' => Tutorial::orderBy('sort', 'ASC')->get()
  15. ]);
  16. }
  17. public function save(TutorialSave $request)
  18. {
  19. $params = $request->only(array_keys(TutorialSave::RULES));
  20. if (!$request->input('id')) {
  21. if (!Tutorial::create($params)) {
  22. abort(500, '创建失败');
  23. }
  24. } else {
  25. try {
  26. Tutorial::find($request->input('id'))->update($params);
  27. } catch (\Exception $e) {
  28. abort(500, '保存失败');
  29. }
  30. }
  31. return response([
  32. 'data' => true
  33. ]);
  34. }
  35. public function show(Request $request)
  36. {
  37. if (empty($request->input('id'))) {
  38. abort(500, '参数有误');
  39. }
  40. $tutorial = Tutorial::find($request->input('id'));
  41. if (!$tutorial) {
  42. abort(500, '教程不存在');
  43. }
  44. $tutorial->show = $tutorial->show ? 0 : 1;
  45. if (!$tutorial->save()) {
  46. abort(500, '保存失败');
  47. }
  48. return response([
  49. 'data' => true
  50. ]);
  51. }
  52. public function sort(TutorialSort $request)
  53. {
  54. DB::beginTransaction();
  55. foreach ($request->input('tutorial_ids') as $k => $v) {
  56. if (!Tutorial::find($v)->update(['sort' => $k + 1])) {
  57. DB::rollBack();
  58. abort(500, '保存失败');
  59. }
  60. }
  61. DB::commit();
  62. return response([
  63. 'data' => true
  64. ]);
  65. }
  66. public function drop(Request $request)
  67. {
  68. if (empty($request->input('id'))) {
  69. abort(500, '参数有误');
  70. }
  71. $tutorial = Tutorial::find($request->input('id'));
  72. if (!$tutorial) {
  73. abort(500, '教程不存在');
  74. }
  75. if (!$tutorial->delete()) {
  76. abort(500, '删除失败');
  77. }
  78. return response([
  79. 'data' => true
  80. ]);
  81. }
  82. }