| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 
							- <?php
 
- namespace Admin\Controller;
 
- use Think\Model;
 
- /**
 
-  * 样式管理
 
-  * @author   brent
 
-  * @version  0.0.1
 
-  */
 
- class StatisticController extends CommonController
 
- {
 
-     protected $table = ''; //表名
 
- 	/**
 
- 	 * [_initialize 前置操作-继承公共前置方法]
 
- 	 * @author   Devil
 
- 	 * @blog     http://gong.gg/
 
- 	 * @version  0.0.1
 
- 	 * @datetime 2016-12-03T12:39:08+0800
 
- 	 */
 
- 	public function _initialize()
 
- 	{
 
- 		// 调用父类前置方法
 
- 		parent::_initialize();
 
- 		// 登录校验
 
- 		$this->Is_Login();
 
- 		// 权限校验
 
- 		$this->Is_Power();
 
- 		//要执行的表
 
- 		$this->table = M('iptv_users');
 
- 	}
 
-     public function orderData()
 
-     {
 
-         $start = I('start_time',date('Y-m-d',strtotime('-8 day', time())));
 
-         $end = I('end_time',date('Y-m-d'));
 
- //        $start = '2019-10-10';
 
- //        $end   = '2019-10-17';
 
-         $start_date = date('Ymd',strtotime($start));
 
-         $end_date = date('Ymd',strtotime($end));
 
-         $where['date(created_at)'] = ['between',[$start,$end]];
 
-         $pvs = []; $uvs =[]; $times = [];
 
-         for ($i=0;$i<=9;$i++) {
 
-             # code...
 
-             if($i==0){
 
-                 $table = 'iptv_user_login_log';
 
-             }else{
 
-                 $table = 'iptv_user_login_log_'.$i;
 
-             }
 
-             $tmp_pvs   = M($table)->where($where)->group('day')->getField('date(created_at) as day,count(*) as total');
 
-             $tmp_uvs   = M($table)->where($where)->group('day')->getField('date(created_at) as day,count(distinct(uid)) as total');
 
-             foreach ($tmp_pvs as $date => $val) {
 
-                 if(isset($pvs[$date])){
 
-                     $pvs[$date] = $pvs[$date] + $val;
 
-                 }else{
 
-                     $pvs[$date] = $val;
 
-                 }
 
-             }
 
-             foreach ($tmp_uvs as $date => $val) {
 
-                 if(isset($uvs[$date])){
 
-                     $uvs[$date] = $uvs[$date] + $val;
 
-                 }else{
 
-                     $uvs[$date] = $val;
 
-                 }
 
-             }
 
-         }
 
-         unset($where);
 
-         $where['date'] = ['between',[$start_date ,$end_date]];
 
-         $where['status'] = 0;
 
-         $orders = M('iptv_order_own')->where($where)->group('date')->getField('date,count(distinct(uid)) as total');
 
- //        dump($orders);
 
-         $where['status'] = 2;
 
-         $pre_orders = M('iptv_order_own')->where($where)->group('date')->getField('date,count(distinct(uid)) as total');
 
-         $pre_orders_counts = M('iptv_order_own')->where($where)->group('date')->getField('date,count(*) as total');
 
-         unset($where);
 
-         $where['status'] =99;
 
-         $cancel_orders = M('iptv_order_own')->where($where)->group('date')->getField('date,count(distinct(uid)) as total');
 
-         //新增用户数
 
-         unset($where);
 
-         $where['date(created_at)'] = ['between',[$start,$end]];
 
-         $addusers = M('iptv_users')->where($where)->group('day')->getField('date(created_at) as day,count(*) as total');
 
- //        dump($pre_orders);
 
-         // $play_time_sum = M('statistic_source')->where(['date'=>])
 
-         //播放时长
 
-         // var_dump($addusers);
 
-         while ($start_date <= $end_date){
 
-             $dates[] = date('Y-m-d',strtotime($start_date));
 
-             $start_date = date('Ymd',(strtotime($start_date)+24*3600));
 
-         }
 
-         $dates = array_reverse($dates);
 
-         foreach ($dates as $date){
 
-         	$where['created_at'] = ['elt',date('Y-m-d 23:59:59',strtotime($date))]; 
 
-             $data[] = [
 
-                 'date'=>$date,
 
-                 'pv'=>$pvs[$date] ?:0,
 
-                 'uv'=>$uvs[$date]?:0,
 
-                 'order'=>$orders[date('Ymd',strtotime($date))]?:0,
 
-                 'pre_order'=>$pre_orders[date('Ymd',strtotime($date))]?:0,
 
-                 'pre_order_count'=>$pre_orders_counts[date('Ymd',strtotime($date))] ? :0,
 
-                 'cancel_order'=>$cancel_orders[date('Ymd',strtotime($date))] ? : 0,
 
-                 'add_user'=>$addusers[$date] ? : 0,
 
-                 'user_sum'=>M('iptv_users')->where($where)->order('user_id desc')->limit(1)->getField('user_id')
 
-             ];
 
-             // echo M()->getlastSQL();die;
 
-         }
 
-         // dump($data);
 
-         if(I('model')){
 
-             $title = array(
 
-                 'date'                      =>  array('col' => 'A', 'name' => '日期'),
 
-                 'pv'                        =>  array('col' => 'B', 'name' => 'pv'),
 
-                 'uv'                        =>  array('col' => 'C', 'name' => 'uv'),
 
-                 'order'                     =>  array('col' => 'D', 'name' => '订购数'),
 
-                 'cancel_order'              =>  array('col' => 'E', 'name' => '退订数'),
 
-                 'pre_order'                 =>  array('col' => 'F', 'name' => '预订购(去重)'),
 
-                 'pre_order_count'           =>  array('col' => 'G', 'name' => '预订购'),
 
-                 'add_user'					=>  array('col'	=> 'I',	'name' => '新增用户'	),
 
-                 'user_sum'					=>  array('col'	=> 'J',	'name' => '累计用户'	)
 
-             );
 
-             // Excel驱动导出数据
 
-             $excel = new \My\Excel(array('filename' => '金鹰电竞运营数据'.$start.'至'.$end, 'title' => $title, 'data' => $data, 'msg' => L('common_not_data_tips')));
 
-             $excel->Export();
 
-             die;
 
-         }
 
-         $this->assign('start_time',$start);
 
-         $this->assign('end_time',$end);
 
-         $this->assign('dates',$dates);
 
-         $this->assign('data',$data);
 
-         $this->display();
 
-     }
 
- 	
 
- }
 
 
  |