fix: remind traffic

This commit is contained in:
Tokumeikoi 2020-09-23 23:15:43 +08:00
parent 76f0b4d4d0
commit ac48f90678
2 changed files with 11 additions and 5 deletions

View File

@ -4,15 +4,18 @@ namespace App\Services;
use App\Jobs\SendEmailJob; use App\Jobs\SendEmailJob;
use App\Models\User; use App\Models\User;
use App\Utils\CacheKey;
use Illuminate\Support\Facades\Cache;
class MailService class MailService
{ {
public function remindTraffic (User $user) public function remindTraffic (User $user)
{ {
if (!$user->remind_traffic) return; if (!$user->remind_traffic) return;
if (!$this->remindTrafficIsWarnValue(($user->u + $user->d), $user->transfer_enable)) { if (!$this->remindTrafficIsWarnValue(($user->u + $user->d), $user->transfer_enable)) return;
return; $flag = CacheKey::get('LAST_SEND_EMAIL_REMIND_TRAFFIC', $user->id);
} if (Cache::get($flag)) return;
if (!Cache::put($flag, 1, 24 * 3600)) return;
SendEmailJob::dispatch([ SendEmailJob::dispatch([
'email' => $user->email, 'email' => $user->email,
'subject' => '在' . config('v2board.app_name', 'V2board') . '的流量使用已达到80%', 'subject' => '在' . config('v2board.app_name', 'V2board') . '的流量使用已达到80%',
@ -27,7 +30,9 @@ class MailService
private function remindTrafficIsWarnValue($ud, $transfer_enable) private function remindTrafficIsWarnValue($ud, $transfer_enable)
{ {
if ($ud <= 0) return false; if ($ud <= 0) return false;
if (($ud / $transfer_enable * 100) < 80) return false; $percentage = $ud / $transfer_enable * 100;
if ($percentage < 80) return false;
if ($percentage >= 100) return false;
return true; return true;
} }
} }

View File

@ -11,7 +11,8 @@ class CacheKey
'SERVER_V2RAY_LAST_CHECK_AT' => '节点最后检查时间', 'SERVER_V2RAY_LAST_CHECK_AT' => '节点最后检查时间',
'SERVER_TROJAN_ONLINE_USER' => 'trojan节点在线用户', 'SERVER_TROJAN_ONLINE_USER' => 'trojan节点在线用户',
'SERVER_TROJAN_LAST_CHECK_AT' => 'trojan节点最后检查时间', 'SERVER_TROJAN_LAST_CHECK_AT' => 'trojan节点最后检查时间',
'TEMP_TOKEN' => '临时令牌' 'TEMP_TOKEN' => '临时令牌',
'LAST_SEND_EMAIL_REMIND_TRAFFIC'
]; ];
public static function get(string $key, $uniqueValue) public static function get(string $key, $uniqueValue)