CardRidingUserBagsController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Filters\CardRidingUserBagsFilter;
  4. use App\Http\Resources\CardRidingUseLogResource;
  5. use App\Http\Resources\CardRidingUserBagsResource;
  6. use App\Models\AdminUser;
  7. use App\Models\AdminUserArea;
  8. use App\Models\Area;
  9. use App\Models\CardRidingUseLog;
  10. use App\Models\CardRidingUserBags;
  11. use App\Utils\Admin;
  12. use Illuminate\Http\Request;
  13. use App\Http\Controllers\Controller;
  14. /**
  15. * Class CardRidingUserBagsController
  16. * @package App\Http\Controllers\Admin
  17. */
  18. class CardRidingUserBagsController extends Controller
  19. {
  20. /**
  21. * index 用户骑行卡列表
  22. *
  23. * @param Request $request
  24. * @param CardRidingUserBagsFilter $filter
  25. * @return \Illuminate\Http\JsonResponse
  26. * @author Fx
  27. *
  28. */
  29. public function index(Request $request, CardRidingUserBagsFilter $filter)
  30. {
  31. $admin_id = Admin::user()->id;
  32. $card = CardRidingUserBags::query()
  33. ->filter($filter)
  34. ->orderByDesc('id')
  35. ->orderByDesc('status');
  36. if (!Admin::isAdministrator()) {
  37. $area_ids = AdminUser::getAreaIdsByAdminId($admin_id);
  38. if (count($area_ids) !== 0) {
  39. $card = $card->whereHas('users', function ($query) use ($area_ids) {
  40. $query->whereIn('register_area_id', $area_ids);
  41. });
  42. } else {
  43. $area = AdminUserArea::query()->where('admin_id', $admin_id)->first();
  44. $area_id = $area->area_id ?? 0;
  45. $card = $card->whereHas('users', function ($query) use ($area_id) {
  46. $query->whereIn('register_area_id', $area_id);
  47. });
  48. }
  49. }
  50. $card = $request->get('all') ? $card->all() : $card->paginate();
  51. return $this->ok(CardRidingUserBagsResource::collection($card));
  52. }
  53. /**
  54. * cardLogs 用卡记录
  55. *
  56. * @param Request $request
  57. * @return \Illuminate\Http\JsonResponse
  58. * @author Fx
  59. *
  60. */
  61. public function cardLogs(Request $request)
  62. {
  63. $card_id = $request->get('card_id') ?? '';
  64. if (empty($card_id)) return $this->error('参数错误');
  65. $cardUseLogs = CardRidingUseLog::query()
  66. ->where('card_riding_user_bags_id', $card_id)
  67. ->paginate();
  68. return $this->ok(CardRidingUseLogResource::collection($cardUseLogs));
  69. }
  70. }