|
@@ -4,15 +4,18 @@ namespace App\Services;
|
|
|
|
|
|
use App\Jobs\SendEmailJob;
|
|
|
use App\Models\User;
|
|
|
+use App\Utils\CacheKey;
|
|
|
+use Illuminate\Support\Facades\Cache;
|
|
|
|
|
|
class MailService
|
|
|
{
|
|
|
public function remindTraffic (User $user)
|
|
|
{
|
|
|
if (!$user->remind_traffic) return;
|
|
|
- if (!$this->remindTrafficIsWarnValue(($user->u + $user->d), $user->transfer_enable)) {
|
|
|
- return;
|
|
|
- }
|
|
|
+ if (!$this->remindTrafficIsWarnValue(($user->u + $user->d), $user->transfer_enable)) 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([
|
|
|
'email' => $user->email,
|
|
|
'subject' => '在' . config('v2board.app_name', 'V2board') . '的流量使用已达到80%',
|
|
@@ -27,7 +30,9 @@ class MailService
|
|
|
private function remindTrafficIsWarnValue($ud, $transfer_enable)
|
|
|
{
|
|
|
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;
|
|
|
}
|
|
|
}
|