UserService.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Services;
  3. use Hashids\Hashids;
  4. class UserService extends BaseService
  5. {
  6. private static $user;
  7. public function __construct($user = null)
  8. {
  9. parent::__construct();
  10. if (isset($user)) {
  11. self::$user = $user;
  12. } else {
  13. self::$user = auth()->user();
  14. }
  15. }
  16. public function getProfile()
  17. {
  18. $user = self::$user;
  19. return [
  20. 'id' => $user->id,
  21. 'nickname' => $user->nickname,
  22. 'account' => $user->username,
  23. 'port' => $user->port,
  24. 'passwd' => $user->passwd,
  25. 'uuid' => $user->vmess_id,
  26. 'transfer_enable' => $user->transfer_enable,
  27. 'u' => $user->u,
  28. 'd' => $user->d,
  29. 't' => $user->t,
  30. 'enable' => $user->enable,
  31. 'speed_limit' => $user->speed_limit,
  32. 'credit' => $user->credit,
  33. 'expired_at' => strtotime($user->expired_at),
  34. 'ban_time' => $user->ban_time,
  35. 'level' => $user->level_name,
  36. 'group' => $user->userGroup->name ?? null,
  37. 'last_login' => $user->last_login,
  38. 'reset_time' => $user->reset_date,
  39. 'invite_num' => $user->invite_num,
  40. 'status' => $user->status,
  41. 'invite_url' => $this->inviteURI(),
  42. ];
  43. }
  44. public function inviteURI($isCode = false): string
  45. {
  46. $affSalt = sysConfig('aff_salt');
  47. if (isset($affSalt)) {
  48. $aff = (new Hashids($affSalt, 8))->encode(self::$user->id());
  49. } else {
  50. $aff = self::$user->id;
  51. }
  52. return $isCode ? $aff : sysConfig('website_url').route('register', ['aff' => 1], false);
  53. }
  54. public function isActivePaying(): bool
  55. {
  56. return self::$user->orders()->active()->where('origin_amount', '>', 0)->exists();
  57. }
  58. }