Пример #1
0
 /**
  * Execute the job.
  *
  * @return void
  */
 public function handle(Mailer $mailer)
 {
     $semester_id = semester()->id;
     $students = Student::whereIn('students.id', $this->students_ids)->select('students.id', 'students.registration_id', 'students.name', 'students.email', 'students.mobile', 'registrations.contact_email')->with('registration')->leftJoin('registrations', 'registrations.id', '=', 'students.registration_id')->groupBy('students.id')->get();
     $created_at = new DateTime();
     // $students = $this->students;
     $students_messages = [];
     foreach ($students as $student) {
         $student_message = [];
         $student_message['created_at'] = $created_at;
         $student_message['updated_at'] = $created_at;
         $student_message['sender_id'] = $this->sender_id;
         $student_message['semester_id'] = $semester_id;
         $student_message['email'] = $this->email;
         $student_message['sms'] = $this->sms;
         $student_message['student_id'] = $student->id;
         $student_message['email_sent'] = 0;
         $student_message['sms_sent'] = 0;
         if (!empty($this->email)) {
             try {
                 $mailer->send('students::emails.message', ['content' => $this->email], function ($m) use($student) {
                     if (!empty($student->registration) && !empty($student->registration->contact_email)) {
                         if (filter_var($student->registration->contact_email, FILTER_VALIDATE_EMAIL)) {
                             $m->cc([$student->registration->contact_email]);
                         }
                     }
                     $m->to($student->email, $student->name)->subject("مركز التعليم عن بعد");
                 });
                 $student_message['email_sent'] = 1;
             } catch (\Swift_RfcComplianceException $e) {
             }
         }
         $mobile_number = $student->mobile;
         if (substr($mobile_number, 0, 3) != 968 && substr($mobile_number, 0, 5) != '00968') {
             $mobile_number = '968' . $mobile_number;
         }
         if (substr($mobile_number, 0, 5) == '00968') {
             $mobile_number = str_replace('00968', '968', $mobile_number);
         }
         // \Log::info($mobile_number);
         if (!empty(trim($this->sms)) && strlen($mobile_number) == 11) {
             $sms = new SmsGateway($this->sms, [$mobile_number]);
             $result = $sms->send();
             if ($result == true or $result->getPushMessageResult()->PushMessageResult == 1) {
                 $student_message['sms_sent'] = 1;
             }
         }
         $students_messages[] = $student_message;
         // $message->save();
     }
     DB::table('student_messages')->insert($students_messages);
     event(new StudentsMessagesQueueFinished());
 }