CardRidingOrderController.php 1.7 KB

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