UserStatusTransformer.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Mead
  5. * Date: 2019/8/5
  6. * Time: 2:44 PM
  7. */
  8. namespace App\Transformers;
  9. use App\Models\PunishmentOrder;
  10. use App\Models\User;
  11. use App\Repositories\OrderRepository;
  12. use App\Repositories\RentOrderRepository;
  13. use Carbon\Carbon;
  14. use League\Fractal\TransformerAbstract;
  15. class UserStatusTransformer extends TransformerAbstract
  16. {
  17. protected $orderRepository;
  18. protected $rentOrderRepository;
  19. public function __construct(OrderRepository $orderRepository, RentOrderRepository $rentOrderRepository)
  20. {
  21. $this->orderRepository = $orderRepository;
  22. $this->rentOrderRepository = $rentOrderRepository;
  23. }
  24. public function transform(User $user)
  25. {
  26. if (Carbon::today()->format('Y-m-d') == Carbon::parse($user->deposit_expire_time)->format('Y-m-d')) {
  27. $deposit_expire_time = '免押金资格' . Carbon::parse($user->deposit_expire_time)->diffForHumans(Carbon::now()) . '到期';
  28. } else {
  29. $deposit_expire_time = '免押金资格有效期至' . Carbon::parse($user->deposit_expire_time)->format('Y-m-d');
  30. }
  31. return [
  32. 'is_card_certified' => $user->is_card_certified,
  33. 'is_deposit' => $user->is_deposit,
  34. 'deposit_type_name' => User::$depositTypeMaps[$user->deposit_type],
  35. 'deposit_type' => $user->deposit_type,
  36. 'deposit_expire_time' => $deposit_expire_time, // ,
  37. 'is_match_ride_age' => $user->is_match_ride_age,
  38. 'is_bind_mobile' => $user->is_bind_mobile,
  39. 'status' => $user->status,
  40. 'is_register' => $user->is_register,
  41. 'is_ride_order' => $this->rideOrder($user),
  42. 'is_pay_order' => $this->noPayOrder($user),
  43. 'is_rent_order' => $this->rentOrder($user),
  44. 'is_pay_rent_order' => $this->rentPayOrder($user),
  45. 'is_punishment' => $this->checkPunishment($user->id)
  46. ];
  47. }
  48. /**
  49. * 检查用户是否有罚单
  50. * @param $user_id
  51. * @return mixed
  52. * Author: Mead
  53. */
  54. protected function checkPunishment($user_id)
  55. {
  56. return PunishmentOrder::where('user_id', $user_id)->where('pay_status', PunishmentOrder::PAY_STATUS_NO)->exists();
  57. }
  58. protected function rentOrder($user)
  59. {
  60. $no = $this->rentOrderRepository->byUserIdCheckIsExistRentOrderWithNo($user->id);
  61. if (is_null($no)) return false;
  62. return $no;
  63. }
  64. public function rentPayOrder($user)
  65. {
  66. $no = $this->rentOrderRepository->byUserIdCheckIsExistNoPayOrderWithNo($user->id);
  67. if (is_null($no)) return false;
  68. return $no;
  69. }
  70. protected function rideOrder($user)
  71. {
  72. $no = $this->orderRepository->byUserIdCheckIsExistRideOrderWithNo($user->id);
  73. if (is_null($no)) return false;
  74. return $no;
  75. }
  76. protected function noPayOrder($user)
  77. {
  78. $no = $this->orderRepository->byUserIdCheckIsExistNoPayOrderWithNo($user->id);
  79. if (is_null($no)) return false;
  80. return $no;
  81. }
  82. }