152 lines
4.7 KiB
PHP
152 lines
4.7 KiB
PHP
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | 小说系统 数据统计 [ WE CAN DO IT JUST THINK IT ]
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\admin\controller;
|
|
use app\common\controller\Admin;
|
|
use think\Cache;
|
|
|
|
class Statistics extends Admin {
|
|
|
|
public function _initialize() {
|
|
parent::_initialize();
|
|
}
|
|
|
|
/**
|
|
* order [订单统计]
|
|
*
|
|
* @return type
|
|
**/
|
|
public function order(){
|
|
//30天数据展示
|
|
$info = Cache::store('redis')->get('info-30');
|
|
//总数据
|
|
$data = Cache::store('redis')->get('Statistics-data');
|
|
|
|
$showDataDay = $data['showDataDay'];
|
|
$showDataYesterday = $data['showDataYesterday'];
|
|
$showDataMonth = $data['showDataMonth'];
|
|
$showDataMonthlast = $data['showDataMonthlast'];
|
|
$showDataCount = $data['showDataCount'];
|
|
$showDataDayOffset = $data['showDataDayOffset'];
|
|
$showDataOffset = $data['showDataOffset'];
|
|
$showDataYesterdayOffset = $data['showDataYesterdayOffset'];
|
|
$showDataDayback = $data['showDataDayback'];
|
|
$showDataYesterdayback = $data['showDataYesterdayback'];
|
|
$showDataback = $data['showDataback'];
|
|
|
|
$data = Cache::store('redis')->get('Userstatisticscache-data');
|
|
$this->assign($data);
|
|
$this->assign("showDataDayback",$showDataDayback);
|
|
$this->assign("showDataYesterdayback",$showDataYesterdayback);
|
|
$this->assign("showDataback",$showDataback);
|
|
|
|
$this->assign("showDataYesterdayOffset",$showDataYesterdayOffset);
|
|
$this->assign("showDataOffset",$showDataOffset);
|
|
$this->assign("showDataDayOffset",$showDataDayOffset);
|
|
$this->assign("showDataDay",$showDataDay);
|
|
$this->assign("showDataYesterday",$showDataYesterday);
|
|
$this->assign("showDataMonth",$showDataMonth);
|
|
$this->assign("showDataMonthlast",$showDataMonthlast);
|
|
$this->assign("showDataCount",$showDataCount);
|
|
$this->assign("sourceid",1);
|
|
$this->assign("info",$info);
|
|
$this->setMeta('订单统计');
|
|
return $this->fetch();
|
|
}
|
|
|
|
/**
|
|
* user [用户统计]
|
|
*
|
|
* @return type
|
|
**/
|
|
public function user(){
|
|
//30天数据展示
|
|
$info = Cache::store('redis')->get('Userstatisticscache-info-30');
|
|
//总数据
|
|
$data = Cache::store('redis')->get('Userstatisticscache-data');
|
|
$this->assign("info",$info);
|
|
$this->assign($data);
|
|
$this->setMeta('用户统计');
|
|
return $this->fetch();
|
|
}
|
|
|
|
|
|
//充值金额分布统计
|
|
public function moneys(){
|
|
$radio1 = input('tim');
|
|
$t = input('t');
|
|
if($radio1=='今日'){
|
|
$tims = $this->timType(1);
|
|
}elseif($radio1=='昨日'){
|
|
$tims = $this->timType(2);
|
|
}elseif($radio1=='本月'){
|
|
$tims = $this->timType(3);
|
|
}elseif($radio1=='全部'){
|
|
$tims = $this->timType(4);
|
|
}
|
|
$startdata = $tims['startdata'];
|
|
$enddata = $tims['enddata'];
|
|
$where['status'] = 1;
|
|
if($t==1){
|
|
$where['hidden'] = 1;
|
|
$where['isback'] = 0;
|
|
$viewtxt = '潜在用户充值详情(实时)';
|
|
}else{
|
|
$where['hidden'] = 0;
|
|
$where['isback'] = 1;
|
|
$viewtxt = '返回键充值详情(实时)';
|
|
}
|
|
$where['create_time'] = array('between',[$startdata,$enddata]);
|
|
$field = "money,count(*) as num";
|
|
$proportion = db('order')->where('iscontrol',0)->where($where)->count('id');
|
|
$list = db('order')->field($field)->where('iscontrol',0)->where($where)->group('money')->select();
|
|
if($list){
|
|
foreach($list as $k=>$v){
|
|
$list[$k]['proportion'] = (empty($proportion)||empty($v['num']))?0:@round(($v['num']/$proportion)*100,2).'%';
|
|
}
|
|
}
|
|
exit(json_encode(array('status'=>1,'list'=>$list,'viewtxt'=>$viewtxt)));
|
|
}
|
|
|
|
public function timType($t){
|
|
if($t==1){
|
|
$startdata = date('Y-m-d 0:0:0'); //今日凌晨
|
|
$enddata = strtotime(date('Y-m-d H:i:s')); //现在
|
|
$f = date('i');
|
|
$enddata = $enddata+((60-$f)*60);
|
|
$enddata = date('Y-m-d H:i:s',$enddata);
|
|
}elseif($t==2){
|
|
$startdata=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
|
|
$startdata = date('Y-m-d H:i:s',$startdata);
|
|
$enddata=mktime(0,0,0,date('m'),date('d'),date('Y'));
|
|
$enddata = date('Y-m-d H:i:s',$enddata);
|
|
}elseif($t==3){
|
|
$startdata=mktime(0,0,0,date('m'),1,date('Y'));
|
|
$enddata=mktime(23,59,59,date('m'),date('t'),date('Y'));
|
|
$startdata = date('Y-m-d H:i:s',$startdata);
|
|
$enddata = date('Y-m-d H:i:s',$enddata);
|
|
}elseif($t==4){
|
|
$startdata = 1641398400;
|
|
$startdata = date('Y-m-d H:i:s',$startdata);
|
|
$enddata = date('Y-m-d H:i:s',time());
|
|
}
|
|
return array(
|
|
'startdata'=>strtotime($startdata),
|
|
'enddata'=>strtotime($enddata)
|
|
);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |