HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/mm.paycheckc.com/app/grab/controller/AdminWordController.php
<?php
namespace app\grab\controller;
use cmf\controller\AdminBaseController;
use app\facade\Connectother as con;
use think\facade\Cache;

/**
 * Class AdminSelectController   showdata展示页面的查询类  2019年10月10日11:10:47
 * @package app\grab\controller
 */
class AdminWordController extends AdminBaseController
{



    public function word_index(){
        $url = con::urls();
        $this->assign('url',$url);
        return $this->fetch();
    }

    public function index_data(){

        $data = input('param.');
        $data['time'] = $data['time']=="" ? '' : $this->cut_time($data['time']);
        $word = $this->sele_word($data);

        //array_filter  数组去空
        $souword = array_count_values (array_filter((array_column($word['data'],'wsouword'))));
        $utm_medium = array_count_values (array_filter((array_column($word['data'],'wutm_medium'))));
        $utm_content = array_count_values (array_filter((array_column($word['data'],'wutm_content'))));
        $utm_term = array_count_values (array_filter((array_column($word['data'],'wutm_term'))));
        // $utm_medium = array_column($word['data'],'utm_medium');
        // $utm_content = array_column($word['data'],'utm_content');
        // $utm_term = array_column($word['data'],'utm_term');

        $arr['souword']=$this->ex_name($souword);
        $arr['utm_medium']=$this->ex_name($utm_medium);
        $arr['utm_content']=$this->ex_name($utm_content);
        $arr['utm_term']=$this->ex_name($utm_term);
        
        return con::msg(0,'ok','',$arr);
       

    }


    public function ex_name($data){
          $arr=[];
          $i=0;
        foreach ($data as $key => $value) {
           $arr[$i]['name']=$key;
           $arr[$i]['num']=(string)$value;
           $i+=1;
        }
        return $arr;
    }


    //查询的展示的词数据
    public function sele_word($data){
        //什么都没选择none
        if($data['app_url']=='0' && $data['time']==''){
            $arr['data'] = con::con('wxshow')
                ->whereTime('wtime', 'today')
                ->field('wid,wsouword,wutm_medium,wutm_content,wutm_term')
                ->order('wid desc')
                ->select();
            return $arr;
            //only url
        }elseif ($data['app_url']!='0' && $data['time']=='') {

            $arr['data'] = con::con('wxshow')
                ->whereTime('wtime', 'today')
                ->where('wlocation',$data['app_url'])
                ->field('wid,wsouword,wutm_medium,wutm_content,wutm_term')
                ->order('wid desc')
                ->select();

            return $arr;
            //only time
        }elseif ($data['app_url']=='0' && $data['time'] !='') {

            $arr['data'] = con::con('wxshow')
                ->where('wtime','>',$data['time']['Btime'])
                ->where('wtime','<',$data['time']['Etime'])
                ->field('wid,wsouword,wutm_medium,wutm_content,wutm_term')
                ->order('wid desc')
                ->select();

            return $arr;
            //choose all
        }else{
            $arr['data'] = con::con('wxshow')
                ->where('wlocation',$data['app_url'])
                ->where('wtime','>',$data['time']['Btime'])
                ->where('wtime','<',$data['time']['Etime'])
                ->field('wid,wsouword,wutm_medium,wutm_content,wutm_term')
                ->order('wid desc')
                ->select();
            return $arr;
        }

    }
    ####






#################################################
#落地词
#################################################

    public function word_floor(){
        $url = con::urls();
        $this->assign('url',$url);
        return $this->fetch();
    }

    public function floor_data(){

        $data = input('param.');
        $data['time'] = $data['time']=="" ? '' : $this->cut_time($data['time']);
        $word = $this->sele_floorword($data);

        //array_filter  数组去空
        $souword = array_count_values (array_filter((array_column($word['data'],'souword'))));
        $utm_medium = array_count_values (array_filter((array_column($word['data'],'utm_medium'))));
        $utm_content = array_count_values (array_filter((array_column($word['data'],'utm_content'))));
        $utm_term = array_count_values (array_filter((array_column($word['data'],'utm_term'))));
        // $utm_medium = array_column($word['data'],'utm_medium');
        // $utm_content = array_column($word['data'],'utm_content');
        // $utm_term = array_column($word['data'],'utm_term');

        $arr['souword']=$this->ex_name($souword);
        $arr['utm_medium']=$this->ex_name($utm_medium);
        $arr['utm_content']=$this->ex_name($utm_content);
        $arr['utm_term']=$this->ex_name($utm_term);

        return con::msg(0,'ok','',$arr);


    }





    //查询的展示的词数据
    public function sele_floorword($data){
        //什么都没选择none
        if($data['app_url']=='0' && $data['time']==''){
            $arr['data'] = con::con('allshow')
                ->whereTime('time', 'today')
                ->field('id,souword,utm_medium,utm_content,utm_term')
                ->order('id desc')
                ->select();
            return $arr;
            //only url
        }elseif ($data['app_url']!='0' && $data['time']=='') {

            $arr['data'] = con::con('allshow')
                ->whereTime('time', 'today')
                ->where('location',$data['app_url'])
                ->field('id,souword,utm_medium,utm_content,utm_term')
                ->order('id desc')
                ->select();

            return $arr;
            //only time
        }elseif ($data['app_url']=='0' && $data['time'] !='') {

            $arr['data'] = con::con('allshow')
                ->where('time','>',$data['time']['Btime'])
                ->where('time','<',$data['time']['Etime'])
                ->field('id,souword,utm_medium,utm_content,utm_term')
                ->order('id desc')
                ->select();

            return $arr;
            //choose all
        }else{
            $arr['data'] = con::con('allshow')
                ->where('location',$data['app_url'])
                ->where('time','>',$data['time']['Btime'])
                ->where('time','<',$data['time']['Etime'])
                ->field('id,souword,utm_medium,utm_content,utm_term')
                ->order('id desc')
                ->select();
            return $arr;
        }

    }




##########################################
#
##################################


    //转化率conversion_rate
    public function conversion_rate(){

        if(!request()->isPost()){

            return $this->fetch(); 
        }

        $input = input('param.');
        $url = con::urls();
        $arr=[];
        if($input["time"]==""){
            foreach ($url  as $key => $value) {
                $data = con::con('allshow')
                        ->whereTime('time','today')
                        ->where('location',$value)
                        ->count();
                $arr[$key]['url']=$value;
                $arr[$key]['flood_wx']=$data;
                $arr[$key]['show_wx']=0;
                $arr[$key]['conversion_rate']=0;
            }  
         }else{
            $times = $this->cut_time($input["time"]);
            foreach ($url  as $key => $value) {
                $data = con::con('allshow')
                        ->where('time','>',$times['Btime'])
                        ->where('time','<',$times['Etime'])
                        ->where('location',$value)
                        ->count();
                $arr[$key]['url']=$value;
                $arr[$key]['flood_wx']=$data;
                $arr[$key]['show_wx']=0;
                $arr[$key]['conversion_rate']=0;
            }
         }
          return con::msg('0','ok','',$arr);
    }

    public function conversion_click(){
        $input = input('param.');
        
        if($input['times']==""){
            $data = con::con('wxshow')
                ->whereTime('wtime','today')
                ->where('wlocation',$input['url'])
                ->count();
        }else{
            $times =$this->cut_time($input['times']);
            $data = con::con('wxshow')
                ->where('wtime','>',$times['Btime'])
                ->where('wtime','<',$times['Etime'])
                ->where('wlocation',$input['url'])
                ->count();
        }
       
        return con::msg('0','ok','',$data);
    }


    public function conversion_click_all(){
        $input = input('param.');
        
        if($input['times']==""){
            $data['wxshow'] = con::con('wxshow')
                    ->whereTime('wtime','today')
                    ->where('wlocation',$input['url'])
                    ->count();
            $data['allshow'] = con::con('allshow')
                    ->whereTime('time','today')
                    ->where('location',$input['url'])
                    ->count();
        }else{
            $times = $this->cut_time($input['times']);
            $data['wxshow'] = con::con('wxshow')
                ->where('wtime','>',$times['Btime'])
                ->where('wtime','<',$times['Etime'])
                ->where('wlocation',$input['url'])
                ->count();
            $data['allshow'] = con::con('allshow')
                ->where('time','>',$times['Btime'])
                ->where('time','<',$times['Etime'])
                ->where('location',$input['url'])
                ->count();
        }
        return con::msg('0','ok','',$data);
    }




   //将时间转换为时间戳
    public function cut_time($str){
//       $str = '2019-10-01 00:00:00 - 2019-10-04 00:00:00';
       //将字符串分割成两个数组
       $arr = explode(' - ',$str);
       //将时间转换为时间戳
        $arr_time = [
            'Btime'=>strtotime($arr['0']),
            'Etime'=>strtotime($arr['1'])
        ];
        return $arr_time;

    }


   

}