UserService.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Services;
  3. use App\Models\Order;
  4. use App\Models\User;
  5. class UserService
  6. {
  7. public function isAvailable(User $user)
  8. {
  9. if (!$user->banned && $user->transfer_enable && ($user->expired_at > time() || $user->expired_at === NULL)) {
  10. return true;
  11. }
  12. return false;
  13. }
  14. public function getAvailableUsers()
  15. {
  16. return User::whereRaw('u + d < transfer_enable')
  17. ->where(function ($query) {
  18. $query->where('expired_at', '>=', time())
  19. ->orWhere('expired_at', NULL);
  20. })
  21. ->where('banned', 0)
  22. ->get();
  23. }
  24. public function getUnAvailbaleUsers()
  25. {
  26. return User::where(function ($query) {
  27. $query->where('expired_at', '<', time())
  28. ->orWhere('expired_at', 0);
  29. })
  30. ->where(function ($query) {
  31. $query->where('plan_id', NULL)
  32. ->orWhere('transfer_enable', 0);
  33. })
  34. ->get();
  35. }
  36. public function getUsersByIds($ids)
  37. {
  38. return User::whereIn('id', $ids)->get();
  39. }
  40. public function getAllUsers()
  41. {
  42. return User::all();
  43. }
  44. public function addBalance(int $userId, int $balance):bool
  45. {
  46. $user = User::find($userId);
  47. if (!$user) {
  48. return false;
  49. }
  50. $user->balance = $user->balance + $balance;
  51. if ($user->balance < 0) {
  52. return false;
  53. }
  54. if (!$user->save()) {
  55. return false;
  56. }
  57. return true;
  58. }
  59. public function isNotCompleteOrderByUserId(int $userId):bool
  60. {
  61. $order = Order::whereIn('status', [0, 1])
  62. ->where('user_id', $userId)
  63. ->first();
  64. if (!$order) {
  65. return false;
  66. }
  67. return true;
  68. }
  69. public function trafficFetch(int $u, int $d, int $userId):bool
  70. {
  71. $user = User::find($userId);
  72. if (!$user) {
  73. return false;
  74. }
  75. $user->t = time();
  76. $user->u = $user->u + $u;
  77. $user->d = $user->d + $d;
  78. if (!$user->save()) {
  79. return false;
  80. }
  81. return true;
  82. }
  83. }