Вход Регистрация
Файл: app/Http/Controllers/Admin/DeliveryController.php
Строк: 57
<?php

declare(strict_types=1);

namespace 
AppHttpControllersAdmin;

use 
AppClassesValidator;
use 
AppModelsUser;
use 
IlluminateDatabaseEloquentCollection;
use 
IlluminateHttpRedirectResponse;
use 
IlluminateHttpRequest;
use 
IlluminateViewView;

class 
DeliveryController extends AdminController
{
    
/**
     * Главная страница
     *
     *
     * @return View|RedirectResponse
     */
    
public function index(Request $requestValidator $validator)
    {
        if (
$request->isMethod('post')) {
            
$msg $request->input('msg');
            
$type int($request->input('type'));
            
$users collect();

            
$validator->equal($request->input('_token'), csrf_token(), ['msg' => __('validator.token')])
                ->
length($msg5setting('comment_length'), ['msg' => __('validator.text')])
                ->
between($type14__('admin.delivery.not_recipients_selected'));

            
// Рассылка пользователям, которые в онлайне
            
if ($type === 1) {
                
$users User::query()->whereHas('online')->get();
            }

            
// Рассылка активным пользователям, которые посещали сайт менее недели назад
            
if ($type === 2) {
                
$users User::query()->where('updated_at''>'strtotime('-1 week'SITETIME))->get();
            }

            
// Рассылка администрации
            
if ($type === 3) {
                
$users User::query()->whereIn('level'User::ADMIN_GROUPS)->get();
            }

            
// Рассылка всем пользователям сайта
            
if ($type === 4) {
                
$users User::query()->whereIn('level'User::USER_GROUPS)->get();
            }

            
/** @var Collection $users */
            
$users $users->filter(static function ($value$key) {
                return 
$value->id !== getUser('id');
            });

            if (
$users->isEmpty()) {
                
$validator->addError(__('admin.delivery.not_recipients'));
            }

            if (
$validator->isValid()) {
                foreach (
$users as $user) {
                    
$user->sendMessage(null$msg);
                }

                
setFlash('success'__('admin.delivery.success_sent'));

                return 
redirect('admin/delivery');
            }

            
setInput($request->all());
            
setFlash('danger'$validator->getErrors());
        }

        return 
view('admin/delivery/index');
    }
}
Онлайн: 1
Реклама