thinkphp5 使用百度ECharts 柱形图

 thinkphp5 使用百度ECharts 柱形图_第1张图片

thinkphp5 使用百度ECharts 柱形图_第2张图片

/**
* 后端查询
*/
    public function get_order()
    {
        $types = input('param.types');
        if($types == 1 || $types == 2){
            //订单统计
            if($types == 1){
                $todays = date("Y-m-d 00:00:00"); //今日
                $todaye = date("Y-m-d 23:59:59"); //今日
                $now = date('Y-m-d');
            }

            if($types == 2){
                $todays = date("Y-m-d 00:00:00",strtotime('-1 hour')); //今日
                $todaye = date("Y-m-d 23:59:59",strtotime('-1 hour')); //今日
                 $now = date('Y-m-d',strtotime('-1day'));
            }

            $today = array();
            $todayjfs = array(); //积分
            $todaysps = array(); //商品

            for($i = 1;$i<=24;$i++){
                array_push($today,$i > 9 ? $i : '0'.$i);
                array_push($todayjfs,'');
                array_push($todaysps,'');
            }
            $todayss = $today;

            $spwhere['create_time'] = array(array('egt',$todays),array('lt',$todaye));
            $todaysp = OrderGoods::where($spwhere)->select();

            $jfwhere['create_time'] = array(array('egt',$todays),array('lt',$todaye));
            $todayjf = IntegralOrderGoods::where($jfwhere)->select();

            foreach ($today as $kss => $vss) {

              $hour = $vss > 9 ? $vss : '0'.$vss;
              $thour = date('H'.$hour);

              $jf_m = 0;
              $sp_m = 0;

              foreach ($todaysp as $k => $v) {
                $createtime = date('H',strtotime($v['create_time']));
                if($thour == $createtime){
                  $sp_m += 1;
                }
              }

              foreach ($todayjf as $k => $v) {
                $createtime = date('H',strtotime($v['create_time'])); 
                if($thour == $createtime){
                  $jf_m += 1;
                }
              }

              $rmn = array();
              $rmn['sp_m'] = $sp_m;
              $rmn['jf_m'] = $jf_m;
              $rmn['item'] = $kss;
              $today[$kss] = $rmn;
            }
              
            foreach ($today as $kt => $vt) {
              $sp = array_splice($todaysps, $vt['item'], 1, $vt['sp_m'] ? $vt['sp_m'] : 0);
              $jf = array_splice($todayjfs, $vt['item'], 1, $vt['jf_m'] ? $vt['jf_m'] : 0);
            }

            $today['sps'] = $todaysps;
            $today['jfs'] = $todayjfs;
            $datetoso['date'] = $todayss;

            return json_encode(['datetoso'=>$datetoso,'jfspdata'=>$today,'now'=>$now]);
        }
        if($types == 3){
            //周开始             
            $toweek = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))); //一周的开始时间
            $soweek = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))); //一周的结束时间   
            
            $now = $toweek.'--'.$soweek;
            $twt = strtotime($toweek);
            $sws = strtotime($soweek);

            $weekjfs = array('','','','','','',''); //一周积分订单
            $weeksps = array('','','','','','',''); //一周商品订单

            //获取一周日期
            $time = mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"));
            $wk = $this->get_week($time);

            $spwhere['create_time'] = array(array('egt',$toweek),array('lt',$soweek));
            $weeksp = OrderGoods::where($spwhere)->select();

            $jfwhere['create_time'] = array(array('egt',$toweek),array('lt',$soweek));
            $weekjf = IntegralOrderGoods::where($jfwhere)->select();

            $weeks = array();
            foreach ($wk as $kss => $vss) { //一周的一天

              $wjf = 0; //积分
              $wsp = 0; //商品

              foreach ($weeksp as $k => $v) {
                $createtime = date('Ymd',strtotime($v['create_time']));
                //每一天
                if($vss['date'] == $createtime){
                  $wsp += 1;
                }
              }

              foreach ($weekjf as $k => $v) {
                $createtime = date('Ymd',strtotime($v['create_time']));
                if($vss['date'] == $createtime){
                  $wjf += 1;
                }
              }

              $wk[$kss]['wsp'] = $wsp;
              $wk[$kss]['wjf'] = $wjf;
              $weeks[] = $wk[$kss]['week'];
            }
         
            foreach ($wk as $kt => $vt) {
              $jf = array_splice($weekjfs, $vt['item'], 1, $vt['wjf'] ? $vt['wjf'] : 0);
              $sp = array_splice($weeksps, $vt['item'], 1, $vt['wsp'] ? $vt['wsp'] : 0);
            }
            $wkdata['jfs'] = $weekjfs;//implode(',', $weekjfs);
            $wkdata['sps'] = $weeksps;//implode(',', $weeksps);
            //周结束
 
            $datetoso['toweek'] = $toweek;
            $datetoso['soweek'] = $soweek;
            $datetoso['date'] = $weeks;
            return json_encode(['datetoso'=>$datetoso,'jfspdata'=>$wkdata,'now'=>$now]);
        }
        if($types == 4){
            //月开始
            $date =  date('t',strtotime(date('Y-m'))); //获取当前月天数

            $monthday = array();
            $monthjfs = array(); //积分
            $monthsps = array(); //商品

            for($i = 1;$i<=$date;$i++){
                array_push($monthday,$i);
                array_push($monthjfs,'');
                array_push($monthsps,'');
            }
            $monthdays = $monthday;//implode(',', $monthday); //当前月天数
            
            $tomonths = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1,date("Y")));   //当前月开始日期
            $somonths = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y")));  //当前月结束日期

            $tmt = strtotime($tomonths);
            $sms = strtotime($somonths);

            $spwhere['create_time'] = array(array('egt',$tomonths),array('lt',$somonths));
            $monthsp = OrderGoods::where($spwhere)->select();

            $jfwhere['create_time'] = array(array('egt',$tomonths),array('lt',$somonths));
            $monthjf = IntegralOrderGoods::where($jfwhere)->select();

            foreach ($monthday as $kss => $vss) {

              $days = $vss > 9 ? $vss : '0'.$vss;
              $tdays = date('Ym'.$days);

              $jf_m = 0;
              $sp_m = 0;

              foreach ($monthsp as $k => $v) {
                $createtime = date('Ymd',strtotime($v['create_time'])); 
                if($tdays == $createtime){
                  $sp_m += 1;
                }
              }

              foreach ($monthjf as $k => $v) {
                $createtime = date('Ymd',strtotime($v['create_time']));
                if($tdays == $createtime){ 
                  $jf_m += 1;
                }
              }

              $rmn = array();
              $rmn['sp_m'] = $sp_m;
              $rmn['jf_m'] = $jf_m;
              $rmn['item'] = $kss;
              $monthday[$kss] = $rmn;
            }
              
            foreach ($monthday as $kt => $vt) {
              $sp = array_splice($monthsps, $vt['item'], 1, $vt['sp_m'] ? $vt['sp_m'] : 0);
              $jf = array_splice($monthjfs, $vt['item'], 1, $vt['jf_m'] ? $vt['jf_m'] : 0);
            }

            $monthday['sps'] = $monthsps; //implode(',', $monthsps);
            $monthday['jfs'] = $monthjfs; //implode(',', $monthjfs);
            //月结束
            $datetoso['date'] = $monthdays;
            return json_encode(['datetoso'=>$datetoso,'jfspdata'=>$monthday,'now'=>date('Y-m')]);
        }
    }

/**
* 获取一周日期
* $time 时间戳
* $format 转换格式
*/
function get_week($time, $format = "Ymd") {
    $week = date('w',$time);
    $weekname=array('星期一','星期二','星期三','星期四','星期五','星期六','星期日');
    //星期日排到末位
    if(empty($week)){
        $week=7;
    }
    $data = array();
    for ($i=0;$i<=6;$i++){
        $data[$i]['item'] = $i;
        $data[$i]['date'] = date($format,strtotime( '+'. $i+1-$week .' days',$time)); 
        $data[$i]['week'] = $weekname[$i]; 
    }
    return $data;
}

 

/**
* 前端 进入初始化为当前日期
*/


   


 

你可能感兴趣的:(图形展示)