UserService.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace App\Services\Customer;
  3. use App\MicroApi\Items\UserItem;
  4. use App\Shop\Addresses\Address;
  5. use App\Shop\Orders\Order;
  6. use Illuminate\Contracts\Auth\UserProvider;
  7. class UserService
  8. {
  9. /**
  10. * @var UserProvider
  11. */
  12. protected $provider;
  13. public function __construct()
  14. {
  15. $this->provider = app('auth')->createUserProvider('micro_user');
  16. }
  17. public function getById(int $id): UserItem
  18. {
  19. return $this->provider->retrieveById($id);
  20. }
  21. public function getByEmail(string $email): UserItem
  22. {
  23. return $this->provider->retrieveByCredentials(['email' => $email]);
  24. }
  25. public function getPaginatedOrdersByUserId($uid, $perPage = 15, $columns = ['*'], $orderBy = 'id')
  26. {
  27. return Order::select($columns)->where('customer_id', $uid)->orderBy($orderBy, 'desc')->paginate($perPage);
  28. }
  29. public function getAddressesByUserId($uid, $columns = ['*'], $orderBy = 'id')
  30. {
  31. return Address::select($columns)->where('customer_id', $uid)->orderBy($orderBy, 'desc')->get();
  32. }
  33. }