CardRidingController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Filters\CardRidingFilter;
  4. use App\Http\Requests\CardRidingRequest;
  5. use App\Http\Resources\CardRidingResource;
  6. use App\Models\CardRiding;
  7. use App\Utils\Admin;
  8. use Illuminate\Http\Request;
  9. use App\Http\Controllers\Controller;
  10. use Illuminate\Support\Facades\Log;
  11. class CardRidingController extends Controller
  12. {
  13. /**
  14. * index 骑行卡列表
  15. *
  16. * @param Request $request
  17. * @param CardRidingFilter $cardRidingFilter
  18. * @return \Illuminate\Http\JsonResponse
  19. * @author Fx
  20. *
  21. */
  22. public function index(Request $request, CardRidingFilter $cardRidingFilter)
  23. {
  24. //
  25. $admin_id = Admin::user()->id;
  26. $ridingCard = CardRiding::query()
  27. ->filter($cardRidingFilter)
  28. ->with(['areaRidingCard'])
  29. ->orderByDesc('id');
  30. if(!Admin::isAdministrator()){
  31. $ridingCard = $ridingCard->where('admin_id',$admin_id)->orWhere('admin_id',1);
  32. }
  33. $ridingCard = $request->get('all') ? $ridingCard->get() : $ridingCard->paginate();
  34. return $this->ok(CardRidingResource::collection($ridingCard));
  35. }
  36. /**
  37. * Show the form for creating a new resource.
  38. *
  39. * @return \Illuminate\Http\Response
  40. */
  41. public function create()
  42. {
  43. //
  44. }
  45. /**
  46. * store 添加骑行卡
  47. *
  48. * @param CardRidingRequest $ridingCardRequest
  49. * @param CardRiding $cardRiding
  50. * @return \Illuminate\Http\Response
  51. * @author Fx
  52. *
  53. */
  54. public function store(CardRidingRequest $ridingCardRequest, CardRiding $cardRiding)
  55. {
  56. //
  57. $admin_id = Admin::user()->id;
  58. $inputs = $ridingCardRequest->validated();
  59. if($inputs['is_limit_times'] == CardRiding::LIMIT_TIMES_NO){
  60. // 不限次设为0
  61. $inputs['times'] = 0;
  62. }
  63. if($inputs['is_discount'] == CardRiding::DISCOUNT_NO){
  64. // 无折扣设为1.00
  65. $inputs['discount'] = 1.00;
  66. }
  67. $inputs['admin_id'] = $admin_id;
  68. $cardRiding = $cardRiding->create($inputs);
  69. if(!empty($areas = $inputs['areas'] ?? [])){
  70. $cardRiding->areaRidingCard()->attach($areas);
  71. }
  72. return $this->create(CardRidingResource::make($cardRiding));
  73. }
  74. /**
  75. * Display the specified resource.
  76. *
  77. * @param int $id
  78. * @return \Illuminate\Http\Response
  79. */
  80. public function show($id)
  81. {
  82. //
  83. }
  84. /**
  85. * edit 编辑骑行卡
  86. *
  87. * @param CardRiding $cardRiding
  88. * @return \Illuminate\Http\JsonResponse
  89. * @author Fx
  90. *
  91. */
  92. public function edit(CardRiding $cardRiding)
  93. {
  94. //
  95. $cardRiding->load(['areaRidingCard']);
  96. return $this->ok(CardRidingResource::make($cardRiding));
  97. }
  98. /**
  99. * update 更新骑行卡
  100. *
  101. * @param CardRidingRequest $ridingCardRequest
  102. * @param CardRiding $cardRiding
  103. * @return \Illuminate\Http\JsonResponse
  104. * @author Fx
  105. *
  106. */
  107. public function update(CardRidingRequest $ridingCardRequest, CardRiding $cardRiding)
  108. {
  109. //
  110. $admin_id = Admin::user()->id;
  111. $inputs = $ridingCardRequest->validated();
  112. if($admin_id !==1){
  113. if($admin_id !== $cardRiding->admin_id){
  114. return $this->error('暂无权限');
  115. }
  116. }
  117. if($inputs['is_limit_times'] == CardRiding::LIMIT_TIMES_NO){
  118. // 不限次设为0
  119. $inputs['times'] = 0;
  120. }
  121. if($inputs['is_discount'] == CardRiding::DISCOUNT_NO){
  122. // 无折扣设为1.00
  123. $inputs['discount'] = 1.00;
  124. }
  125. // Log::info($inputs);
  126. $cardRiding->update($inputs);
  127. if(isset($inputs['areas'])){
  128. $cardRiding->areaRidingCard()->sync($inputs['areas']);
  129. }
  130. return $this->created(CardRidingResource::make($cardRiding));
  131. }
  132. /**
  133. * destroy 删除骑行卡
  134. *
  135. * @param CardRiding $ridingCard
  136. * @return \Illuminate\Http\JsonResponse
  137. * @author Fx
  138. *
  139. */
  140. public function destroy(CardRiding $ridingCard)
  141. {
  142. //
  143. $ridingCard->delete();
  144. return $this->noContent();
  145. }
  146. }