mirror of
				https://github.com/v2board/v2board.git
				synced 2025-11-04 11:21:46 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
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;
 | 
						|
        $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%',
 | 
						|
            'template_name' => 'remindTraffic',
 | 
						|
            'template_value' => [
 | 
						|
                'name' => config('v2board.app_name', 'V2Board'),
 | 
						|
                'url' => config('v2board.app_url')
 | 
						|
            ]
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    private function remindTrafficIsWarnValue($ud, $transfer_enable)
 | 
						|
    {
 | 
						|
        if ($ud <= 0) return false;
 | 
						|
        $percentage = $ud / $transfer_enable * 100;
 | 
						|
        if ($percentage < 80) return false;
 | 
						|
        if ($percentage >= 100) return false;
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
}
 |