Laravel: даже если существуют данные, которые отправляет почта - PullRequest
0 голосов
/ 25 февраля 2020

Я стараюсь, чтобы пользователь мог использовать систему. Для условия 1: пользователь зарегистрировал систему, но еще не вошел в систему. Второе условие - не входил в систему в течение 7 дней. Третье условие - в системе есть 10 модулей, пользователь должен 10 модулей.

Письмо отправлено правильно, но в моем состоянии 3 у меня возникли некоторые проблемы. Это похоже на данные, которые пользователь уже использовал, но он все еще отправляет почту. Кто-нибудь может помочь с этим?

    public function create() 
    {
            $users = User::where('user_type', 2)->get();
            $auto_email_templates = AutoEmailTemplate::all();
            $ModuleAutoMail=module_auto_mail::all();

    foreach($auto_email_templates as $mail) {
        foreach ($users as $user) {

                $ableToSendMail  = false;
                $email_id = $mail->id;
                $user_id = $user->id;
                $module_name = $mail->module_name;
                $emailCheck = EmailSave::where('email_id',$email_id)->where('user_id',$user_id)->count();

                if (!EmailSave::where('user_id',$user_id)->where('email_id',$email_id)->whereDate('created_at', Carbon::today())->exists()) {
                    if($mail->condition_id=='1'){ 
                        if(is_null($user->last_sign_in)){
                            $ableToSendMail = true;

                            if ($emailCheck < 1) {
                                $ableToSendMail = true;
                            }
                        }
                    }
                    elseif ($mail->condition_id=='2'){
                        $last_sign_in = Carbon::parse($user->last_sign_in);
                        $DeferenceInDays = Carbon::parse(Carbon::now())->diffInDays($last_sign_in);
                        if($DeferenceInDays > 7){
                            $ableToSendMail = true;

                            if ($emailCheck < 1){  
                                $ableToSendMail = true;
                            } 
                        }
                    }
                    else { 

                            if($mail->condition_id=='3' ){   

                                $last_used_module = Carbon::parse($user->last_used_module);
                                $DeferenceInDays = Carbon::parse(Carbon::now())->diffInDays($last_used_module);

                                    if(is_null($user->last_used_module)){ 
                                        $ableToSendMail = true;
                                    }
                                    elseif ($DeferenceInDays > 7) {
                                        // $ableToSendMail = false;
                                    }
                                    else {
                                        if ($emailCheck< 1){  
                                            // $ableToSendMail = false;
                                        }
                                    }

                                }

                        }          
                    }
                    if ($ableToSendMail) { //saving and sent email
                        $mails = new EmailSave;
                        $mails->user_id = $user->id;
                        $mails->email_id =$mail->id;
                        Mail::to($user->email)->send(new Automail($mail));
                        $mails->save();
                    }
                }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...