This commit is contained in:
root 2019-12-30 16:21:50 +08:00
parent 157a97b35d
commit 5070c851ed
4 changed files with 43 additions and 6 deletions

View File

@ -41,23 +41,30 @@ class SendRemindMail extends Command
{
$users = User::all();
foreach ($users as $user) {
if ($user->remind_expire) {
$this->remindExpire($user);
}
if ($user->remind_expire) $this->remindExpire($user);
if ($user->remind_traffic) $this->remindTraffic($user);
}
}
private function remindExpire ($user) {
if (($user->expired_at - 86400) < time() && $user->expired_at > time()) {
$this->dispatch(new SendEmail([
SendEmail::dispatch([
'email' => $user->email,
'subject' => '在' . config('v2board.app_name', 'V2board') . '的服务即将到期',
'template_name' => 'mail.sendRemindExpire',
'template_value' => [
'name' => config('v2board.app_name', 'V2Board')
]
]));
]);
}
}
private function remindTraffic ($user) {
if ((($user->u + $user->d) / $user->transfer_enable * 100) >= 80) {
}
}
}

View File

@ -8,6 +8,7 @@ use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
use App\Models\MailLog;
class SendEmail implements ShouldQueue
{
@ -40,5 +41,12 @@ class SendEmail implements ShouldQueue
$message->to($email)->subject($subject);
}
);
MailLog::create([
'email' => $params['email'],
'subject' => $params['subject'],
'template_name' => $params['template_name'],
'error' => count(Mail::failures()) > 0 ? Mail::failures()[0] : NULL
]);
}
}

12
app/Models/MailLog.php Normal file
View File

@ -0,0 +1,12 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MailLog extends Model
{
protected $table = 'v2_mail_log';
protected $dateFormat = 'U';
protected $guarded = ['id'];
}

View File

@ -79,4 +79,14 @@ CHANGE `half_year_price` `half_year_price` int(11) NULL DEFAULT '0' AFTER `quart
CHANGE `year_price` `year_price` int(11) NULL DEFAULT '0' AFTER `half_year_price`;
ALTER TABLE `v2_server`
ADD `parent_id` int(11) NULL AFTER `group_id`;
ADD `parent_id` int(11) NULL AFTER `group_id`;
CREATE TABLE `v2_mail_log` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`email` varchar(64) NOT NULL,
`subject` varchar(255) NOT NULL,
`template_name` varchar(255) NOT NULL,
`error` varchar(255) DEFAULT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL
);