userExpireWarning(); } $jobEndTime = microtime(true); $jobUsedTime = round(($jobEndTime - $jobStartTime), 4); Log::info('---【'.$this->description.'】完成---,耗时'.$jobUsedTime.'秒'); } private function userExpireWarning(): void { $expireDays = sysConfig('expire_days'); // 只取SSR没被禁用的用户,其他不用管 foreach (User::whereEnable(1)->get() as $user) { // 用户名不是邮箱的跳过 if (false === filter_var($user->email, FILTER_VALIDATE_EMAIL)) { continue; } // 计算剩余可用时间 $lastCanUseDays = Helpers::daysToNow($user->expired_at); if ($lastCanUseDays === 0) { $title = '账号过期提醒'; $content = '您的账号将于今天晚上【24:00】过期。'; $logId = Helpers::addNotificationLog($title, $content, 1, $user->email); Mail::to($user->email)->send(new userExpireWarningToday($logId)); } elseif ($lastCanUseDays > 0 && $lastCanUseDays <= $expireDays) { $title = '账号过期提醒'; $content = '您的账号还剩'.$lastCanUseDays.'天即将过期。'; $logId = Helpers::addNotificationLog($title, $content, 1, $user->email); Mail::to($user->email)->send(new userExpireWarning($logId, $lastCanUseDays)); } } } }