agentUser(session('user_auth.uid'))); } $nowday= date('Y-m-d'); $days=array(); $info=array(); for($i=30;$i>=1;$i--) { $date=strtotime($nowday)-(30-$i)*24*3600; $map['create_time'] = array(array('gt',$date),array('lt',$date+86399)); $map['status'] = 1; $info[date('Y-m-d',$date)] = array( "pay"=> $this->paySum(0,$date,$date+86399), "paynormal"=> $this->paySum(0,$date,$date+86399,1), "normalnum"=> db('order')->where(array_merge($map,array('type'=>1)))->cache()->count('uid'),//普通充值人数 "payvip"=> $this->paySum(0,$date,$date+86399,2),//年费VIP会员充值金额 "vipnum"=> db('order')->where(array_merge($map,array('type'=>2)))->cache()->count(),//充值人数 "payPaid"=>$this->statistics($date,$date+86399,1,1),//普通充值支付订单数 "payUnpaid"=> $this->statistics($date,$date+86399,1,0),//未付款 "payYaerPaid"=>$this->statistics($date,$date+86399,2,1),//年费VIP会员支付订单数 "payYaerUnpaid"=> $this->statistics($date,$date+86399,2,0),//未付款 ); } $dataSection = $this ->dataSection(); $dataSection['all'] = array( 'Start'=>0, 'End'=>0, ); foreach($dataSection as $k=>$v){ //充值金额 $data[$k."Pay"] = $this->paySum(0,$v['Start'],$v['End']); //普通充值 已支付 $data[$k."Paid"] = $this->statistics($v['Start'],$v['End'],1,1); //普通充值 未付款 $data[$k."Unpaid"] = $this->statistics($v['Start'],$v['End'],1,0); //年费VIP会员 已支付 $data[$k."YearPaid"] = $this->statistics($v['Start'],$v['End'],2,1); //年费VIP会员 未付款 $data[$k."YearUnpaid"] = $this->statistics($v['Start'],$v['End'],2,0); } $this->assign("info",$info); $this->assign($data); $this->setMeta('订单统计'); return $this->fetch(); } /** * kouliang [扣量统计] * * @return type **/ public function kouliang(){ $data = array(); $map = array(); if(session('user_auth.group')==3){ $map['agentid'] = array('in',$this->agentUser(session('user_auth.uid'))); } $nowday= date('Y-m-d'); $days=array(); $info=array(); for($i=30;$i>=1;$i--) { $date=strtotime($nowday)-(30-$i)*24*3600; $map['create_time'] = array(array('gt',$date),array('lt',$date+86399)); $map['status'] = 1; $map['is_kouliang'] = 1; $info[date('Y-m-d',$date)] = array( "pay"=> $this->paySum(1,$date,$date+86399), "paynormal"=> $this->paySum(1,$date,$date+86399,1), "normalnum"=> db('order')->where(array_merge($map,array('type'=>1)))->cache()->count('uid'),//普通充值人数 "payvip"=> $this->paySum(1,$date,$date+86399,2),//年费VIP会员充值金额 "vipnum"=> db('order')->where(array_merge($map,array('type'=>2)))->cache()->count(),//充值人数 "payPaid"=>$this->statistics($date,$date+86399,1,1),//普通充值支付订单数 "payUnpaid"=> $this->statistics($date,$date+86399,1,0),//未付款 "payYaerPaid"=>$this->statistics($date,$date+86399,2,1),//年费VIP会员支付订单数 "payYaerUnpaid"=> $this->statistics($date,$date+86399,2,0),//未付款 ); } $dataSection = $this ->dataSection(); $dataSection['all'] = array( 'Start'=>0, 'End'=>0, ); foreach($dataSection as $k=>$v){ //充值金额 $data[$k."Pay"] = $this->paySum(1,$v['Start'],$v['End']); //普通充值 已支付 $data[$k."Paid"] = $this->statistics($v['Start'],$v['End'],1,1); //普通充值 未付款 $data[$k."Unpaid"] = $this->statistics($v['Start'],$v['End'],1,0); //年费VIP会员 已支付 $data[$k."YearPaid"] = $this->statistics($v['Start'],$v['End'],2,1); //年费VIP会员 未付款 $data[$k."YearUnpaid"] = $this->statistics($v['Start'],$v['End'],2,0); } $this->assign("info",$info); $this->assign($data); $this->setMeta('扣量统计'); return $this->fetch(); } /** * user [用户统计] * * @return type **/ public function user(){ $dataSection = $this ->dataSection(); $dataSection['all'] = array( 'Start'=>0, 'End'=>0, ); foreach($dataSection as $k=>$v){ //新增 $data[$k."newUser"] = $this ->newUser($v['Start'],$v['End']); //新增男的 $data[$k."newUserman"] = $this ->newUser($v['Start'],$v['End'],1); //新增女的 $data[$k."newUsergril"] = $this ->newUser($v['Start'],$v['End'],2); //新增未知 $data[$k."newUsernone"] = $this ->newUser($v['Start'],$v['End'],0); //已关注 $data[$k."attention"] = $this ->newUser($v['Start'],$v['End'],null,1); //已付费 $data[$k."pay"] = $this ->newUser($v['Start'],$v['End'],null,0,1); } $nowday= date('Y-m-d'); $days=array(); $info=array(); for($i=30;$i>=1;$i--) { $date=strtotime($nowday)-(30-$i)*24*3600; $map['create_time'] = array(array('gt',$date),array('lt',$date+86399)); $map['status'] = 1; $info[date('Y-m-d',$date)] = array( "newUser"=> $this ->newUser($date,$date+86399), "newUserman" => $this ->newUser($v['Start'],$v['End'],1), "newUsergril" => $this ->newUser($v['Start'],$v['End'],2), "attention" => $this ->newUser($v['Start'],$v['End'],null,1), "pay" => $this ->newUser($v['Start'],$v['End'],null,0,1), ); } $this->assign("info",$info); $this->assign($data); $this->setMeta('用户统计'); return $this->fetch(); } /** * novel [小说统计] * * @return type **/ public function novel() { $info = array(); if(session('user_auth.group')==3){ $map['t.agentid'] = array('in',$this->agentUser(session('user_auth.uid'))); $novel = db('tuiguang')->alias('t')->join('cms_novel n','n.id = t.articleid')->where($map)->column('title','articleid'); }else{ $map['status'] =1; $novel = db('novel')->where($map)->column('title','id'); } $dataSection = $this ->dataSection(); unset($dataSection['month']); $dataSection['all'] = array( 'Start'=>0, 'End'=>0, ); if($novel){ foreach($novel as $k=>$v){ $info[$k]['name']=$v; foreach($dataSection as $kk=>$vv){ $info[$k][$kk.'pay'] =$this->paySum(0,$vv['Start'],$vv['End'],0,$k); //充值笔数 $info[$k][$kk.'Paid'] =$this->statistics($vv['Start'],$vv['End'],0,0,$k); } } } $this->assign("info",$info); $this->setMeta('小说充值统计'); return $this->fetch(); } /** * statistics [充值笔数] * * @param type $startData [开始时间] * @param type $endData [结束时间] * @param type $type [订单类型] * @param type $status [订单状态] * * @return type **/ protected function statistics($startData,$endData,$type=0,$status=0,$articleid=0) { if(session('user_auth.group')==3){ $map['agentid'] = array('in',$this->agentUser(session('user_auth.uid'))); } if($startData && $endData){ $map['create_time'] = array(array('gt',$startData),array('lt',$endData)) ; } if($type){ $map['type'] = array('in',$type); } if($articleid){ $map['articleid'] = $articleid; } if($status){ $map['status'] = array('in',$status); } $total = db('order')->where($map)->cache(true,600)->count(); return $total; } /** * paySum [充值金额] * * @param type $is_kouliang [是否扣量] * @param type $startData [开始时间] * @param type $endData [结束时间] * @param type $type [订单类型] * @param type $type [desc] * * @return type **/ protected function paySum($is_kouliang=0,$startData,$endData,$type=0,$articleid=0) { $map['status'] = 1; if(session('user_auth.group')==3){ $map['agentid'] = array('in',$this->agentUser(session('user_auth.uid'))); } if($startData && $endData){ $map['create_time'] = array(array('gt',$startData),array('lt',$endData)) ; } if($type){ $map['type'] = $type; } if($is_kouliang){ $map['is_kouliang'] = $is_kouliang; }else{ $map['is_kouliang'] = 0; } if($articleid){ $map['articleid'] = $articleid; } $sum = db('order')->where($map)->cache(true,600)->sum('money'); return $sum; } /** * agentUser [各等级代理商用户] * * @return type **/ protected function agentUser($uid) { $member = db('member')->where('uid='.$uid)->find(); if($member['is_top']==1){ $map['s_uid'] = $uid; }elseif($member['is_top']==0 && empty($member['t_uid'])){ $map['t_uid'] = $uid; }else{ return $uid; } $map['status'] =1; $map['group'] =3; $daili = db('member')->where($map)->cache(true,600)->column('uid'); $daili[]=$uid; $agentid = implode(",",$daili); return $agentid; } /** * newUser [新增用户] * * @param type $startData [开始时间] * @param type $endData [desc] * @param type $sex [性别] * @param type $attention [已关注] * @param type $pay [已付费] * * @return type **/ public function newUser($startData,$endData,$sex=null,$attention=0,$pay=0) { if(session('user_auth.group')==3){ $map['agentid'] = array('in',$this->agentUser(session('user_auth.uid'))); } if($startData && $endData){ $map['reg_time'] = array(array('gt',$startData),array('lt',$endData)) ; } $map['status'] = 1; if(isset($sex)){ $map['sex'] = $sex; } if($attention){ $map['is_attention'] = $attention; } if($pay){ $map['pay'] = array('egt',$pay); } $map['group'] =4; $sum = db('member')->where($map)->cache(true,600)->count(); return $sum; } /** * dataSection [今天/昨天/月/时间区间] * * @return type **/ protected function dataSection() { $result['today']['Start'] = mktime(0, 0, 0, date("m"), date("d"), date("Y")); $result['today']['End'] = mktime(23, 59, 59, date("m"), date("d"), date("Y")); $result['yesterday']['Start'] = mktime(0, 0, 0, date('m'), date('d')-1, date('Y')); $result['yesterday']['End'] = mktime(0, 0, 0, date('m'), date('d'), date('Y'))-1; $result['month']['Start'] =mktime(0, 0, 0, date("m"), 1, date("Y")); $result['month']['End'] =mktime(23, 59, 59, date("m"), date("t"), date("Y")); return $result; } }