Merge branch 'dev' of 47.111.118.107:/srv/git/platform into dev
@ -0,0 +1,286 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | OneThink [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace Admin\Controller;
|
||||
use User\Api\UserApi as UserApi;
|
||||
|
||||
/**
|
||||
* 后台首页控制器
|
||||
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
||||
*/
|
||||
class IndexChartSetController extends AdminController {
|
||||
|
||||
public $beginTime;
|
||||
public $endTime;
|
||||
public $date;
|
||||
public $nowdata;
|
||||
public $UserModel;
|
||||
public $ChartModel;
|
||||
public $LoginModel;
|
||||
public $SpendModel;
|
||||
public $PromoteModel;
|
||||
public $addid;
|
||||
public $adddata;
|
||||
public $reset=false;
|
||||
|
||||
public function _initialize(){
|
||||
//初始化
|
||||
|
||||
$this->UserModel =M("User","tab_");
|
||||
$this->ChartModel =M("IndexChart","tab_");
|
||||
$this->LoginModel =M("user_login_record","tab_");
|
||||
$this->SpendModel =M("spend","tab_");
|
||||
$this->PromoteModel =M("promote","tab_");
|
||||
$this->nowdata =time();
|
||||
if(I("reset")) $this->reset = true;
|
||||
|
||||
}
|
||||
/**
|
||||
* 每日更新接口
|
||||
*/
|
||||
public function setChartCount()
|
||||
{
|
||||
$begin = date("Y-m-d",strtotime("-1 day"));
|
||||
$this->setDateCount($begin);
|
||||
}
|
||||
|
||||
public function setFreeDateCount($begin,$end='')
|
||||
{
|
||||
if($end == '') $end = $begin;
|
||||
//判断日期格式
|
||||
$patten = "/^\d{4}[\-](0?[1-9]|1[012])[\-](0?[1-9]|[12][0-9]|3[01])$/";
|
||||
if (!preg_match($patten, $begin)) {
|
||||
die("开始时间格式错误");
|
||||
}
|
||||
if (!preg_match($patten, $end)) {
|
||||
die("结束时间格式错误");
|
||||
}
|
||||
if(strtotime($end) < strtotime($begin)){
|
||||
die("结束时间不能比开始时间小");
|
||||
}
|
||||
if(strtotime($end)+86399 > time()){
|
||||
die("结束时间不能包含今日");
|
||||
}
|
||||
if($begin == $end){
|
||||
$this->setDateCount($begin);
|
||||
}else{
|
||||
$starttime = $begin?strtotime($begin):mktime(0,0,0,date('m'),date('d')-1,date('Y'));
|
||||
$endtime = $end?strtotime($end)+86399:$starttime+86399;
|
||||
$datelist = get_date_list($starttime,$endtime,1);
|
||||
$countdate = count($datelist);
|
||||
for($i=0;$i<$countdate;$i++){
|
||||
$this->setDateCount($datelist[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//
|
||||
public function setDateCount($date)
|
||||
{
|
||||
$this->date = $date;
|
||||
$tarry = explode('-',$date);
|
||||
$this->beginTime=mktime(0,0,0,$tarry[1],$tarry[2],$tarry[0]);
|
||||
$this->endTime=mktime(0,0,0,$tarry[1],$tarry[2]-0+1,$tarry[0])-1;
|
||||
|
||||
set_time_limit(0);
|
||||
$t1 = microtime(true);
|
||||
//判断是否存在
|
||||
$res = $this->ChartModel->where("date = '{$this->beginTime}'")->find();
|
||||
$reset='';
|
||||
if(!empty($res)){
|
||||
if($this->reset){
|
||||
$this->ChartModel->where("date = '{$this->beginTime}'")->delete();
|
||||
$reset = "reset and creat ";
|
||||
}else{
|
||||
echo ("{$this->date} 已统计,请勿重复 ".PHP_EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->newUser();
|
||||
$this->activeUser();
|
||||
$this->payUser();
|
||||
$this->payMoney();
|
||||
$this->promoteNew();
|
||||
$this->allCount();
|
||||
$this->createDb();
|
||||
|
||||
$t2 = microtime(true);
|
||||
echo ("{$this->date} {$reset}success runtime:".round($t2-$t1,3).'s'.PHP_EOL);
|
||||
# code...
|
||||
}
|
||||
//获取每日的增长用户
|
||||
public function newUser()
|
||||
{
|
||||
$map = ['register_time'=>['between',[$this->beginTime,$this->endTime]],"puid"=>0];//0不是小号
|
||||
$hoursnews = $this->UserModel->field('FROM_UNIXTIME(register_time, "%H") as time,COUNT(1) AS news')
|
||||
->where($map)
|
||||
->group("time")
|
||||
->select();
|
||||
$hours = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
|
||||
$user_hours = array();
|
||||
foreach($hours as $v) {
|
||||
$user_hours[$v] = 0;
|
||||
}
|
||||
foreach($hoursnews as $h) {
|
||||
$user_hours[$h['time']] = (integer)$h['news'];
|
||||
}
|
||||
$this->adddata["new_user_hours"] = serialize($user_hours);
|
||||
unset($user_hours);
|
||||
//获取当日所有的注册用户
|
||||
$userList = $this->UserModel->field('count(1) count')
|
||||
->where($map)
|
||||
->find();
|
||||
$this->adddata["new_user_count"] = $userList['count'];
|
||||
}
|
||||
|
||||
/**
|
||||
* 活跃用户计算
|
||||
*/
|
||||
public function activeUser()
|
||||
{
|
||||
$map = ['login_time'=>['between',[$this->beginTime,$this->endTime]]];//0不是小号
|
||||
$hoursnews = $this->LoginModel->field('FROM_UNIXTIME(login_time, "%H") as time,COUNT(DISTINCT user_id) AS active')
|
||||
->where($map)
|
||||
->group("time")
|
||||
->select();
|
||||
$hours = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
|
||||
$user_hours = array();
|
||||
foreach($hours as $v) {
|
||||
$user_hours[$v] = 0;
|
||||
}
|
||||
foreach($hoursnews as $h) {
|
||||
$user_hours[$h['time']] = (integer)$h['active'];
|
||||
}
|
||||
$this->adddata["active_user_hours"] = serialize($user_hours);
|
||||
unset($user_hours);
|
||||
//获取活跃用户列表
|
||||
$activeCount = $this->LoginModel->field('user_id')
|
||||
->where($map)
|
||||
->group('user_id')
|
||||
->select();
|
||||
|
||||
$this->adddata["active_user_count"] = count($activeCount);
|
||||
$this->adddata["active_user_list"] = serialize(array_column($activeCount,'user_id'));
|
||||
unset($activeCount);
|
||||
}
|
||||
/**
|
||||
* 计算充值用户
|
||||
*/
|
||||
public function payUser()
|
||||
{
|
||||
$map = ['pay_time'=>['between',[$this->beginTime,$this->endTime]],'pay_status'=>1];//1支付成功
|
||||
$hoursnews = $this->SpendModel->field('FROM_UNIXTIME(pay_time, "%H") as time,COUNT(DISTINCT user_id) AS payuser')
|
||||
->where($map)
|
||||
->group("time")
|
||||
->select();
|
||||
$hours = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
|
||||
$user_hours = array();
|
||||
foreach($hours as $v) {
|
||||
$user_hours[$v] = 0;
|
||||
}
|
||||
foreach($hoursnews as $h) {
|
||||
$user_hours[$h['time']] = (integer)$h['payuser'];
|
||||
}
|
||||
$this->adddata["pay_user_hours"] = serialize($user_hours);
|
||||
unset($user_hours);
|
||||
$activeCount = $this->SpendModel->field('user_id')
|
||||
->where($map)
|
||||
->group('user_id')
|
||||
->select();
|
||||
|
||||
$this->adddata["pay_user_count"] = count($activeCount);
|
||||
$this->adddata["pay_user_list"] = serialize(array_column($activeCount,'user_id'));
|
||||
unset($activeCount);
|
||||
}
|
||||
/**
|
||||
* 充值金额计算
|
||||
*/
|
||||
public function payMoney()
|
||||
{
|
||||
$map = ['pay_time'=>['between',[$this->beginTime,$this->endTime]],"pay_status"=>1];//1支付成功
|
||||
$hoursnews = $this->SpendModel->field('FROM_UNIXTIME(pay_time, "%H") as time,sum(pay_amount) AS money')
|
||||
->where($map)
|
||||
->group("time")
|
||||
->select();
|
||||
|
||||
|
||||
$hours = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
|
||||
$user_hours = array();
|
||||
foreach($hours as $v) {
|
||||
$user_hours[$v] = 0;
|
||||
}
|
||||
foreach($hoursnews as $h) {
|
||||
$user_hours[$h['time']] = (integer)$h['money'];
|
||||
}
|
||||
$this->adddata["pay_money_hours"] = serialize($user_hours);
|
||||
unset($user_hours);
|
||||
|
||||
$activeCount = $this->SpendModel->field('sum(pay_amount) AS money')
|
||||
->where($map)
|
||||
->find();
|
||||
$this->adddata["pay_money_count"] = $activeCount['money']?:0;
|
||||
}
|
||||
/**
|
||||
* 新增推广
|
||||
*/
|
||||
public function promoteNew()
|
||||
{
|
||||
$map = ['create_time'=>['between',[$this->beginTime,$this->endTime]]];
|
||||
$hoursnews = $this->PromoteModel->field('FROM_UNIXTIME(create_time, "%H") as time,COUNT(1) AS news')
|
||||
->where($map)
|
||||
->group("time")
|
||||
->select();
|
||||
|
||||
|
||||
$hours = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
|
||||
$user_hours = array();
|
||||
foreach($hours as $v) {
|
||||
$user_hours[$v] = 0;
|
||||
}
|
||||
foreach($hoursnews as $h) {
|
||||
$user_hours[$h['time']] = (integer)$h['news'];
|
||||
}
|
||||
$this->adddata["promote_new_hours"] = serialize($user_hours);//promote_new_hours
|
||||
unset($user_hours);
|
||||
|
||||
$activeCount = $this->PromoteModel->field('COUNT(1) AS news')
|
||||
->where($map)
|
||||
->find();
|
||||
$this->adddata["promote_new_count"] = $activeCount['news'];
|
||||
}
|
||||
|
||||
/**
|
||||
* 统计其他综合信息
|
||||
* 1. 7天活跃
|
||||
* 2. 平台累计用户
|
||||
* 3. 累计付费用户
|
||||
*/
|
||||
public function allCount()
|
||||
{
|
||||
$user = D('User');
|
||||
$spend = D('Spend');
|
||||
$promote = D('Promote');
|
||||
$allcount = array();
|
||||
$allcount['user_count'] = $user->old();
|
||||
$allcount['active_count'] =$user->active(['tab_user_login_record.login_time'=>['between',[mktime(0,0,0,date('m'),date('d')-7,date('Y')),mktime(0,0,0,date('m'),date('d'),date('Y'))-1]]]);
|
||||
$allcount['player_count'] =$spend->player();
|
||||
$allcount['money_sum'] =$spend->totalAmount();
|
||||
$allcount['promote_sum'] =$promote->total();
|
||||
$this->adddata["all_count"] = serialize($allcount);
|
||||
}
|
||||
public function createDb()
|
||||
{
|
||||
$this->adddata['date']=$this->beginTime;
|
||||
$this->adddata['create_time']=$this->nowdata;
|
||||
$this->ChartModel->add($this->adddata);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,194 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | OneThink [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace Admin\Controller;
|
||||
use User\Api\UserApi as UserApi;
|
||||
|
||||
/**
|
||||
* 后台首页控制器
|
||||
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
||||
*/
|
||||
class TimingController extends AdminController {
|
||||
|
||||
public function _initialize(){
|
||||
}
|
||||
|
||||
public function caculateDeviceInfo() {
|
||||
|
||||
$start = 1569686400;
|
||||
$end = time();
|
||||
|
||||
if (I('time')) {
|
||||
$start = strtotime(I('time'));
|
||||
$end = $start+1;
|
||||
}
|
||||
|
||||
if (I('start')) {
|
||||
$start = strtotime(I('start'));
|
||||
}
|
||||
|
||||
ini_set('memory_limit','1024M');
|
||||
// $device = D('DeviceRecord');
|
||||
// echo 1;
|
||||
for($startTime = $start;$startTime<$end;$startTime=$startTime+86400) {
|
||||
echo date("Y-m-d",$startTime).' 安卓 ';
|
||||
//当日新增设备
|
||||
$newSql = M('device_record','tab_')->field('min(create_time) as create_time,model,unique_code,id')->where(['version'=>1])->group('unique_code')->select(false);
|
||||
$data['new_device'] = M('device_record','tab_')->table('(' . $newSql . ') as a')->where(['create_time'=>array('between',[$startTime,$startTime+86399])])->order('create_time')->count();
|
||||
|
||||
echo $data['new_device'].' ';
|
||||
//当日活跃设备
|
||||
$data['active_device'] = $this->active(['create_time'=>array('between',[$startTime,$startTime+86399]),'version'=>1]);
|
||||
echo $data['active_device'].' ';
|
||||
$data['time'] = $startTime;
|
||||
$data['version'] = 1;
|
||||
|
||||
$data['today_new_device'] =json_encode($this->news_on_time(['create_time'=>['between',[$startTime,$startTime+86399]]],'news',5,'time,version','time',1));
|
||||
|
||||
// echo M('device_record','tab_')->_sql()."\n";
|
||||
$data['today_active_device'] =json_encode($this->active_on_time(['create_time'=>['between',[$startTime,$startTime+86399]],'version'=>1],'active',5,'time,version'));
|
||||
// echo M('device_record','tab_')->_sql()."\n";
|
||||
$data['today_model_device'] = json_encode($this->model(['create_time'=>['between',[$startTime,$startTime+86399]],'version'=>1]));
|
||||
|
||||
$data['model'] = json_encode($this->modelDevice(['create_time'=>['between',[$startTime,$startTime+86399]],'version'=>1]));
|
||||
|
||||
$duration = $this->duration(['create_time'=>array('between',[$startTime-86400*7,$startTime-1])]);
|
||||
$newSqls = M('device_record','tab_')->field('min(create_time) as create_time,model,unique_code,id')->group('unique_code')->select(false);
|
||||
$data['duration7'] = ($duration/M('device_record','tab_')->table('(' . $newSqls . ') as a')->where(['create_time'=>array('between',[$startTime-86400*7,$startTime-1])])->order('create_time')->count())/7;
|
||||
|
||||
$getStatistics = M('device_statistics','tab_')->where(['time'=>$startTime,'version'=>1])->find();
|
||||
echo "\n";
|
||||
if (!$getStatistics) {
|
||||
M('device_statistics','tab_')->add($data);
|
||||
} else {
|
||||
M('device_statistics','tab_')->where(['time'=>$startTime,'version'=>1])->save($data);
|
||||
}
|
||||
|
||||
echo date("Y-m-d",$startTime).' 苹果 ';
|
||||
//当日新增设备
|
||||
$newSql = M('device_record','tab_')->field('min(create_time) as create_time,model,unique_code,id')->where(['version'=>2])->group('unique_code')->select(false);
|
||||
$data['new_device'] = M('device_record','tab_')->table('(' . $newSql . ') as a')->where(['create_time'=>array('between',[$startTime,$startTime+86399])])->order('create_time')->count();
|
||||
|
||||
echo $data['new_device'].' ';
|
||||
//当日活跃设备
|
||||
$data['active_device'] = $this->active(['create_time'=>array('between',[$startTime,$startTime+86399]),'version'=>2]);
|
||||
echo $data['active_device'].' ';
|
||||
$data['time'] = $startTime;
|
||||
$data['version'] = 2;
|
||||
echo 0;
|
||||
$data['today_new_device'] =json_encode($this->news_on_time(['create_time'=>['between',[$startTime,$startTime+86399]]],'news',5,'time,version','time',2));
|
||||
// echo M('device_record','tab_')->_sql();die();
|
||||
echo 1;
|
||||
$data['today_active_device'] =json_encode($this->active_on_time(['create_time'=>['between',[$startTime,$startTime+86399]],'version'=>2],'active',5,'time,version'));
|
||||
echo 2;
|
||||
$data['today_model_device'] = json_encode($this->model(['create_time'=>['between',[$startTime,$startTime+86399]],'version'=>2]));
|
||||
echo 3;
|
||||
|
||||
$data['model'] = json_encode($this->modelDevice(['create_time'=>['between',[$startTime,$startTime+86399]],'version'=>2]));
|
||||
|
||||
// $duration = $this->duration(['create_time'=>array('between',[$startTime-86400*7,$startTime-1]),'version'=>2]);
|
||||
// $data['duration7'] = ($duration/M('device_record','tab_')->table('(' . $newSql . ') as a')->where(['create_time'=>array('between',[$startTime-86400*7,$startTime-1])])->order('create_time')->count())/7;
|
||||
$data['duration7'] = 0;
|
||||
echo 4;
|
||||
$getStatistics = M('device_statistics','tab_')->where(['time'=>$startTime,'version'=>2])->find();
|
||||
echo "\n";
|
||||
if (!$getStatistics) {
|
||||
M('device_statistics','tab_')->add($data);
|
||||
} else {
|
||||
M('device_statistics','tab_')->where(['time'=>$startTime,'version'=>2])->save($data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function duration($map=array()) {
|
||||
|
||||
return M('device_record','tab_')->where($map)->sum('duration');
|
||||
|
||||
}
|
||||
|
||||
public function active($map=array()) {
|
||||
|
||||
$sql = M('device_record','tab_')->field('create_time,model,unique_code')->where($map)->select(false);
|
||||
|
||||
$sql = M('device_record','tab_')->table('(' . $sql . ') as a')->group('unique_code')->order('create_time')->select(false);
|
||||
|
||||
$sql = "select count(*) as count from ({$sql})t";
|
||||
|
||||
$count = M('device_record','tab_')->query($sql);
|
||||
|
||||
return $count[0]['count'];
|
||||
|
||||
}
|
||||
|
||||
public function news_on_time($map=array(),$field='news',$flag=1,$group='time',$order='time',$version = 1) {
|
||||
|
||||
switch($flag) {
|
||||
case 2:{$dateform = '%Y-%m';};break;
|
||||
case 3:{$dateform = '%Y-%u';};break;
|
||||
case 4:{$dateform = '%Y';};break;
|
||||
case 5:{$dateform = '%Y-%m-%d %H';};break;
|
||||
default:$dateform = '%Y-%m-%d';
|
||||
}
|
||||
|
||||
$sql = M('device_record','tab_')->field('min(create_time) as create_time,version,unique_code,id')->where(['version'=>$version])->group('unique_code')->select(false);
|
||||
|
||||
$news = M('device_record','tab_')->table('(' . $sql . ') as a')
|
||||
->field('FROM_UNIXTIME(a.create_time, "'.$dateform.'") as '.$group.',group_concat(a.id) as id,group_concat(a.unique_code) as unique_code ,COUNT(a.unique_code) AS '.$field)
|
||||
->where($map)->group($group)->order($order)->select();
|
||||
// echo M('device_record','tab_')->_sql();die();
|
||||
return $news;
|
||||
|
||||
}
|
||||
|
||||
public function active_on_time($map=array(),$field='active',$flag=1,$group='time',$order='time') {
|
||||
|
||||
switch($flag) {
|
||||
case 2:{$dateform = '%Y-%m';};break;
|
||||
case 3:{$dateform = '%Y-%u';};break;
|
||||
case 4:{$dateform = '%Y';};break;
|
||||
case 5:{$dateform = '%Y-%m-%d %H';};break;
|
||||
default:$dateform = '%Y-%m-%d';
|
||||
}
|
||||
|
||||
|
||||
$sql = M('device_record','tab_')->field('create_time,version,unique_code,id')->where($map)->select(false);
|
||||
|
||||
$mid = M('device_record','tab_')->table('(' . $sql . ') as m')->group('unique_code')->select(false);
|
||||
|
||||
$active = M('device_record','tab_')->table('(' . $mid . ') as a')
|
||||
->field('FROM_UNIXTIME(a.create_time, "'.$dateform.'") as '.$group.',group_concat(a.id) as id,group_concat(a.unique_code) as unique_code ,COUNT(a.unique_code) AS '.$field)
|
||||
->group($group)->order($order)->select();
|
||||
// echo $this->_sql();die();
|
||||
return $active;
|
||||
|
||||
}
|
||||
|
||||
public function model($map=array()) {
|
||||
|
||||
$sql = M('device_record','tab_')->field('create_time,model,version,unique_code')->where($map)->select(false);
|
||||
|
||||
|
||||
$mid = M('device_record','tab_')->table('(' .$sql. ') as m')->group('unique_code')->select(false);
|
||||
|
||||
return M('device_record','tab_')->table('(' .$mid. ') as a')->field('a.model,version,count(a.unique_code) as count')->group('model,version')->order('count desc')->select();
|
||||
|
||||
}
|
||||
|
||||
public function modelDevice($map=array()) {
|
||||
$sql = M('device_record','tab_')->field('model,version,unique_code')->where($map)->select(false);
|
||||
|
||||
$mid = M('device_record','tab_')->table('(' .$sql. ') as m')->group('unique_code')->select();
|
||||
|
||||
return $mid;
|
||||
}
|
||||
|
||||
}
|
@ -1 +1 @@
|
||||
{"news":[{"time":"0:00","count":16},{"time":"1:00","count":11},{"time":"2:00","count":12},{"time":"3:00","count":8},{"time":"4:00","count":9},{"time":"5:00","count":5},{"time":"6:00","count":6},{"time":"7:00","count":15},{"time":"8:00","count":18},{"time":"9:00","count":28},{"time":"10:00","count":82},{"time":"11:00","count":77},{"time":"12:00","count":33},{"time":"13:00","count":36},{"time":"14:00","count":156},{"time":"15:00","count":136},{"time":"16:00","count":108},{"time":"17:00","count":71},{"time":"18:00","count":75},{"time":"19:00","count":99},{"time":"20:00","count":104},{"time":"21:00","count":82},{"time":"22:00","count":84},{"time":"23:00","count":45}],"sum":{"news":1316,"active":6633,"player":1359,"money":132537.03},"active":[{"time":"0:00","count":833},{"time":"1:00","count":294},{"time":"2:00","count":144},{"time":"3:00","count":101},{"time":"4:00","count":84},{"time":"5:00","count":150},{"time":"6:00","count":410},{"time":"7:00","count":590},{"time":"8:00","count":452},{"time":"9:00","count":438},{"time":"10:00","count":399},{"time":"11:00","count":299},{"time":"12:00","count":250},{"time":"13:00","count":174},{"time":"14:00","count":309},{"time":"15:00","count":269},{"time":"16:00","count":204},{"time":"17:00","count":174},{"time":"18:00","count":175},{"time":"19:00","count":222},{"time":"20:00","count":206},{"time":"21:00","count":161},{"time":"22:00","count":181},{"time":"23:00","count":114}],"player":[{"time":"0:00","count":174},{"time":"1:00","count":54},{"time":"2:00","count":34},{"time":"3:00","count":19},{"time":"4:00","count":17},{"time":"5:00","count":18},{"time":"6:00","count":31},{"time":"7:00","count":54},{"time":"8:00","count":54},{"time":"9:00","count":48},{"time":"10:00","count":53},{"time":"11:00","count":63},{"time":"12:00","count":45},{"time":"13:00","count":52},{"time":"14:00","count":40},{"time":"15:00","count":107},{"time":"16:00","count":90},{"time":"17:00","count":56},{"time":"18:00","count":47},{"time":"19:00","count":66},{"time":"20:00","count":62},{"time":"21:00","count":66},{"time":"22:00","count":66},{"time":"23:00","count":43}],"money":[{"time":"0:00","count":"21663.00"},{"time":"1:00","count":"3664.00"},{"time":"2:00","count":"2245.00"},{"time":"3:00","count":"734.00"},{"time":"4:00","count":"1526.00"},{"time":"5:00","count":"1506.00"},{"time":"6:00","count":"3141.00"},{"time":"7:00","count":"3900.00"},{"time":"8:00","count":"5225.00"},{"time":"9:00","count":"5350.02"},{"time":"10:00","count":"3657.00"},{"time":"11:00","count":"5008.00"},{"time":"12:00","count":"2899.00"},{"time":"13:00","count":"7167.00"},{"time":"14:00","count":"13457.00"},{"time":"15:00","count":"6680.00"},{"time":"16:00","count":"4772.00"},{"time":"17:00","count":"4365.01"},{"time":"18:00","count":"3683.00"},{"time":"19:00","count":"3187.00"},{"time":"20:00","count":"5599.00"},{"time":"21:00","count":"10597.00"},{"time":"22:00","count":"7201.00"},{"time":"23:00","count":"5311.00"}]}
|
||||
{"news":[{"time":"0:00","count":0},{"time":"1:00","count":0},{"time":"2:00","count":1},{"time":"3:00","count":0},{"time":"4:00","count":0},{"time":"5:00","count":0},{"time":"6:00","count":0},{"time":"7:00","count":0},{"time":"8:00","count":0},{"time":"9:00","count":1},{"time":"10:00","count":0},{"time":"11:00","count":2},{"time":"12:00","count":0},{"time":"13:00","count":0},{"time":"14:00","count":3},{"time":"15:00","count":1},{"time":"16:00","count":1},{"time":"17:00","count":1},{"time":"18:00","count":3},{"time":"19:00","count":0},{"time":"20:00","count":2},{"time":"21:00","count":0},{"time":"22:00","count":3},{"time":"23:00","count":2}],"sum":{"news":20,"active":43,"player":10,"money":50.059999999999995},"active":[{"time":"0:00","count":0},{"time":"1:00","count":0},{"time":"2:00","count":2},{"time":"3:00","count":0},{"time":"4:00","count":0},{"time":"5:00","count":0},{"time":"6:00","count":0},{"time":"7:00","count":0},{"time":"8:00","count":0},{"time":"9:00","count":2},{"time":"10:00","count":3},{"time":"11:00","count":7},{"time":"12:00","count":1},{"time":"13:00","count":1},{"time":"14:00","count":4},{"time":"15:00","count":1},{"time":"16:00","count":1},{"time":"17:00","count":3},{"time":"18:00","count":5},{"time":"19:00","count":0},{"time":"20:00","count":2},{"time":"21:00","count":1},{"time":"22:00","count":8},{"time":"23:00","count":2}],"player":[{"time":"0:00","count":0},{"time":"1:00","count":0},{"time":"2:00","count":0},{"time":"3:00","count":0},{"time":"4:00","count":0},{"time":"5:00","count":0},{"time":"6:00","count":0},{"time":"7:00","count":0},{"time":"8:00","count":0},{"time":"9:00","count":0},{"time":"10:00","count":1},{"time":"11:00","count":1},{"time":"12:00","count":0},{"time":"13:00","count":0},{"time":"14:00","count":1},{"time":"15:00","count":3},{"time":"16:00","count":2},{"time":"17:00","count":1},{"time":"18:00","count":0},{"time":"19:00","count":0},{"time":"20:00","count":0},{"time":"21:00","count":0},{"time":"22:00","count":0},{"time":"23:00","count":1}],"money":[{"time":"0:00","count":0},{"time":"1:00","count":0},{"time":"2:00","count":0},{"time":"3:00","count":0},{"time":"4:00","count":0},{"time":"5:00","count":0},{"time":"6:00","count":0},{"time":"7:00","count":0},{"time":"8:00","count":0},{"time":"9:00","count":0},{"time":"10:00","count":"1.01"},{"time":"11:00","count":"9.00"},{"time":"12:00","count":0},{"time":"13:00","count":0},{"time":"14:00","count":"0.01"},{"time":"15:00","count":"10.01"},{"time":"16:00","count":"11.02"},{"time":"17:00","count":"14.00"},{"time":"18:00","count":0},{"time":"19:00","count":0},{"time":"20:00","count":0},{"time":"21:00","count":0},{"time":"22:00","count":0},{"time":"23:00","count":"5.01"}]}
|
@ -0,0 +1,2 @@
|
||||
/*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */
|
||||
;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'<h3 style="'+(e?n.title[1]:"")+'">'+(e?n.title[0]:n.title)+"</h3>":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type="1">'+n.btn[0]+"</span>",2===t&&(e='<span no type="0">'+n.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(n.content||"")+"</p>"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"<div "+("string"==typeof n.shade?'style="'+n.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(n.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(n.skin?"layui-m-layer-"+n.skin+" ":"")+(n.className?n.className:"")+" "+(n.anim?"layui-m-anim-"+n.anim:"")+'" '+(n.style?'style="'+n.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+n.content+"</div>"+c+"</div></div></div>",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i]("layui-m-layershade")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:"2.0",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a("#"+o[0]+e)[0];n&&(n.innerHTML="",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf("/")+1);n.getAttribute("merge")||document.head.appendChild(function(){var e=t.createElement("link");return e.href=a+"need/layer.css?2.0",e.type="text/css",e.rel="styleSheet",e.id="layermcss",e}())}()}(window);
|
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 701 B |
After Width: | Height: | Size: 1.7 KiB |
@ -0,0 +1,2 @@
|
||||
/*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */
|
||||
;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'<h3 style="'+(e?n.title[1]:"")+'">'+(e?n.title[0]:n.title)+"</h3>":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type="1">'+n.btn[0]+"</span>",2===t&&(e='<span no type="0">'+n.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(n.content||"")+"</p>"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"<div "+("string"==typeof n.shade?'style="'+n.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(n.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(n.skin?"layui-m-layer-"+n.skin+" ":"")+(n.className?n.className:"")+" "+(n.anim?"layui-m-anim-"+n.anim:"")+'" '+(n.style?'style="'+n.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+n.content+"</div>"+c+"</div></div></div>",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i]("layui-m-layershade")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:"2.0",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a("#"+o[0]+e)[0];n&&(n.innerHTML="",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf("/")+1);n.getAttribute("merge")||document.head.appendChild(function(){var e=t.createElement("link");return e.href=a+"need/layer.css?2.0",e.type="text/css",e.rel="styleSheet",e.id="layermcss",e}())}()}(window);
|
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 701 B |
After Width: | Height: | Size: 1.7 KiB |