CardRidingOrderController.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Filters\CardRidingOrderFilter;
  4. use App\Http\Resources\CardRidingOrderResource;
  5. use App\Models\AdminUser;
  6. use App\Models\AdminUserArea;
  7. use App\Models\Area;
  8. use App\Models\CardRidingOrder;
  9. use App\Utils\Admin;
  10. use Illuminate\Http\Request;
  11. use App\Http\Controllers\Controller;
  12. class CardRidingOrderController extends Controller
  13. {
  14. /**
  15. * index 骑行卡订单列表
  16. *
  17. * @param Request $request
  18. * @param CardRidingOrderFilter $cardRidingOrderFilter
  19. * @return \Illuminate\Http\JsonResponse
  20. * @author Fx
  21. *
  22. */
  23. public function index(Request $request,CardRidingOrderFilter $cardRidingOrderFilter)
  24. {
  25. $admin_id = Admin::user()->id;
  26. $cardRidingOrder = CardRidingOrder::query()
  27. ->filter($cardRidingOrderFilter)
  28. ->orderByDesc('id');
  29. if (!Admin::isAdministrator()) {
  30. $area_ids = AdminUser::getAreaIdsByAdminId($admin_id);
  31. if (count($area_ids) !== 0) {
  32. $cardRidingOrder = $cardRidingOrder->whereIn('area_id', $area_ids);
  33. } else {
  34. $area = AdminUserArea::query()->where('admin_id', $admin_id)->first();
  35. $area_id = $area->area_id ?? 0;
  36. $cardRidingOrder = $cardRidingOrder->where(function ($q) use ($area_id) {
  37. $q->where('area_id', $area_id)->orWhere('area_id', 0);
  38. });
  39. }
  40. }
  41. $cardRidingOrder = $request->get('all') ? $cardRidingOrder->all() : $cardRidingOrder->paginate();
  42. return $this->ok(CardRidingOrderResource::collection($cardRidingOrder));
  43. }
  44. }