2023-01-29 10:26:52 +08:00

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)
);
}
}