message = $message; $this->type = $type; $this->toUser = $toUser; $this->trace = $trace; } /** * Execute the job. * * @return void */ public function handle() { try { //验证码 if ($this->type == 'security_code') { $this->sendSecurityCode(); }elseif ($this->type == 'message') {//密码 $this->sendMail(); } else { $this->sendErrorMessage(); } } catch (\Exception $e) { $this->getError($e); } } public function sendErrorMessage() { $error_log = ErrorLog::create(['message'=>$this->message, 'status'=>0, 'trace'=> $this->trace]); $email_arr = ErrorMailUser::where('is_ban', 0)->get(); foreach ($email_arr as $email) { if (!$email->official_openid) continue; $data['touser'] = $email->official_openid; $data['template_id'] = config('wechat.tpls.error_notice'); $data['url'] = config('app.url').'/error/message/'.$error_log->id; $data['data'] = [ 'first' => '服务器系统报错通知', 'keyword1' => '接口错误', 'keyword2' => '福恋', 'keyword3' => date('Y-m-d H:i:s'), 'remark' => $this->message, ]; SendTemplateMsg::dispatch($data)->onQueue('error_email'); } } public function sendSecurityCode() { $code = Str::random(6, 1); $content = '绑定预约成员验证码:'.$code.',有效期十分钟,请妥善保管'; $data = [ 'toUser'=>$this->toUser, 'text'=>$content, ]; Mail::send(new AppointmentMember($data)); EmailMessage::create(['email'=>$this->toUser, 'message'=>$content, 'code'=>$code, 'confirmed'=>0, 'ip'=>'']); } public function sendMail() { $data = [ 'toUser'=>$this->toUser, 'text'=>$this->message, ]; Mail::send(new AppointmentMember($data)); EmailMessage::create(['email'=>$this->toUser, 'message'=>$this->message, 'code'=>'', 'confirmed'=>1, 'ip'=>'']); } }