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