diff --git a/app/Jobs/BatchTrafficFetchJob.php b/app/Jobs/BatchTrafficFetchJob.php index 0cf8599..18a456f 100644 --- a/app/Jobs/BatchTrafficFetchJob.php +++ b/app/Jobs/BatchTrafficFetchJob.php @@ -2,6 +2,7 @@ namespace App\Jobs; +use App\Models\User; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; @@ -17,7 +18,7 @@ class BatchTrafficFetchJob implements ShouldQueue protected $protocol; protected $timestamp; public $tries = 1; - public $timeout = 10; + public $timeout = 20; /** * Create a new job instance. @@ -36,34 +37,16 @@ class BatchTrafficFetchJob implements ShouldQueue public function handle(): void { - // 获取子节点 $targetServer = $this->childServer ?? $this->server; foreach ($this->data as $uid => $v) { - $u = $v[0]; - $d = $v[1]; - $result = \DB::transaction(function () use ($uid, $u, $d, $targetServer) { - $user = \DB::table('v2_user')->lockForUpdate()->where('id', $uid)->first(); - if (!$user) { - return true; - } - $newTime = time(); - $newU = $user->u + ($u * $targetServer['rate']); - $newD = $user->d + ($d * $targetServer['rate']); - $rows = \DB::table('v2_user') - ->where('id', $uid) - ->update([ - 't' => $newTime, - 'u' => $newU, - 'd' => $newD, - ]); - if ($rows === 0) { - return false; - } - return true; - }, 3); - if (!$result) { - TrafficFetchJob::dispatch($u, $d, $uid, $targetServer, $this->protocol); - } + User::where('id', $uid) + ->incrementEach( + [ + 'u' => $v[0] * $targetServer['rate'], + 'd' => $v[1] * $targetServer['rate'], + ], + ['t' => time()] + ); } } } diff --git a/app/Services/ServerService.php b/app/Services/ServerService.php index 391157a..60bcefa 100644 --- a/app/Services/ServerService.php +++ b/app/Services/ServerService.php @@ -196,7 +196,7 @@ class ServerService // 获取可用的用户列表 public static function getAvailableUsers($groupId): Collection { - return \DB::table('v2_user') + return User::toBase() ->whereIn('group_id', $groupId) ->whereRaw('u + d < transfer_enable') ->where(function ($query) { diff --git a/composer.json b/composer.json index b7768ab..8dad9fe 100755 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ "license": "MIT", "require": { "php": "^8.1", + "cedar2025/http-foundation": "6.4.x-dev", "cweagans/composer-patches": "^1.7", "doctrine/dbal": "^3.7", "firebase/php-jwt": "^6.3", @@ -20,7 +21,7 @@ "guzzlehttp/guzzle": "^7.4.3", "hhxsv5/laravel-s": "~3.7.0", "joanhey/adapterman": "^0.6.1", - "laravel/framework": "^10.0", + "laravel/framework": "10.48.22", "laravel/horizon": "^5.9.6", "laravel/tinker": "^2.5", "linfo/linfo": "^4.0",