|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Admin\Controller;
|
|
|
|
|
use User\Api\UserApi as UserApi;
|
|
|
|
|
use Org\UcenterSDK\Ucservice;
|
|
|
|
|
/**
|
|
|
|
|
* 后台首页控制器
|
|
|
|
|
* @author yyh
|
|
|
|
|
*/
|
|
|
|
|
class PlatformController extends ThinkController {
|
|
|
|
|
function game_statistics($p=0){
|
|
|
|
|
$page = intval($p);
|
|
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
|
$arraypage=$page;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$user=M('User','tab_');
|
|
|
|
|
$map['fgame_id']=array('gt',0);$map['puid'] = 0;
|
|
|
|
|
|
|
|
|
|
if(!empty($_REQUEST['timestart'])&& !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['between',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399)];
|
|
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
|
|
} elseif(!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['between',array(strtotime($_REQUEST['timestart']),time())];
|
|
|
|
|
unset($_REQUEST['timestart']);
|
|
|
|
|
} elseif(empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['elt',strtotime($_REQUEST['timeend'])+86399];
|
|
|
|
|
unset($_REQUEST['timeend']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// var_dump($_REQUEST);exit;
|
|
|
|
|
if(isset($_REQUEST['game_name'])&&$_REQUEST['game_name']!=''){
|
|
|
|
|
$map['fgame_name'] =$_REQUEST['game_name'];
|
|
|
|
|
unset($_REQUEST['fgame_name']);
|
|
|
|
|
}
|
|
|
|
|
$today=total(1);
|
|
|
|
|
$week=total(2);
|
|
|
|
|
$mounth=total(3);
|
|
|
|
|
$data=$user
|
|
|
|
|
->field('fgame_name,fgame_id,date_format(FROM_UNIXTIME( register_time),"%Y-%m-%d") AS time, count(id) as count,
|
|
|
|
|
count(IF(register_time '.$today.',1,null)) as today,
|
|
|
|
|
count(IF(register_time '.$week.',1,null)) as week,
|
|
|
|
|
count(IF(register_time '.$mounth.',1,null)) as mounth')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('fgame_id')
|
|
|
|
|
->order('count desc,register_time')
|
|
|
|
|
->select();
|
|
|
|
|
$count=count($data);
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
static $i=0;
|
|
|
|
|
$i++;
|
|
|
|
|
$data[$key]['rand']=$i;
|
|
|
|
|
}
|
|
|
|
|
$total=$this->data_total($data);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
|
|
$size=$row;//每页显示的记录数
|
|
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
|
|
$this->meta_title = '游戏注册统计列表';
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function gamepay_statistics($p=0){
|
|
|
|
|
$page = intval($p);
|
|
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
|
$arraypage=$page;
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
|
|
|
|
|
$spend=M('Spend','tab_');
|
|
|
|
|
$deposit = M('Deposit',"tab_");
|
|
|
|
|
$map['game_id']=array('gt',0);
|
|
|
|
|
|
|
|
|
|
if(!empty($_REQUEST['timestart'])&& !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['pay_time'] = ['between',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399)];
|
|
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
|
|
} elseif(!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['pay_time'] = ['between',array(strtotime($_REQUEST['timestart']),time())];
|
|
|
|
|
unset($_REQUEST['timestart']);
|
|
|
|
|
} elseif(empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['pay_time'] = ['elt',strtotime($_REQUEST['timeend'])+86399];
|
|
|
|
|
unset($_REQUEST['timeend']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var_dump($_REQUEST);exit;
|
|
|
|
|
if(isset($_REQUEST['game_name'])&&$_REQUEST['game_name']!=''){
|
|
|
|
|
$map['game_id'] = $_REQUEST['game_name'];
|
|
|
|
|
unset($_REQUEST['game_name']);
|
|
|
|
|
}
|
|
|
|
|
$map['pay_status']=1;
|
|
|
|
|
$today=total(1);
|
|
|
|
|
$week=total(2);
|
|
|
|
|
$mounth=total(3);
|
|
|
|
|
$data=$spend
|
|
|
|
|
->field('game_name,game_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
|
|
sum(IF(pay_time '.$today.',pay_amount,0)) as today,
|
|
|
|
|
sum(IF(pay_time '.$week.',pay_amount,0)) as week,
|
|
|
|
|
sum(IF(pay_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('game_id')
|
|
|
|
|
->order('count desc,pay_time')
|
|
|
|
|
->select();
|
|
|
|
|
$count=count($data);
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
static $i=0;
|
|
|
|
|
$i++;
|
|
|
|
|
$data[$key]['rand']=$i;
|
|
|
|
|
}
|
|
|
|
|
$total=$this->data_total($data);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
|
|
$size=$row;//每页显示的记录数
|
|
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
|
|
$this->meta_title = '游戏充值统计列表';
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function resway_statistics($p=0){
|
|
|
|
|
// var_dump(total(2));exit;
|
|
|
|
|
$page = intval($p);
|
|
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
|
$arraypage=$page;
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$user=M('User','tab_');$map['puid'] = 0;
|
|
|
|
|
|
|
|
|
|
if(!empty($_REQUEST['timestart'])&& !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['between',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399)];
|
|
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
|
|
} elseif(!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['between',array(strtotime($_REQUEST['timestart']),time())];
|
|
|
|
|
unset($_REQUEST['timestart']);
|
|
|
|
|
} elseif(empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['elt',strtotime($_REQUEST['timeend'])+86399];
|
|
|
|
|
unset($_REQUEST['timeend']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// var_dump($_REQUEST);exit;
|
|
|
|
|
if(isset($_REQUEST['register_way'])&&$_REQUEST['register_way']!=''){
|
|
|
|
|
$map['register_way'] =$_REQUEST['register_way'];
|
|
|
|
|
unset($_REQUEST['register_way']);
|
|
|
|
|
}
|
|
|
|
|
$today=total(1);
|
|
|
|
|
$week=total(2);
|
|
|
|
|
$mounth=total(3);
|
|
|
|
|
$data=$user
|
|
|
|
|
->field('register_way,date_format(FROM_UNIXTIME(register_time),"%Y-%m-%d") AS time, count(id) as count,
|
|
|
|
|
count(IF(register_time '.$today.',1,null)) as today,
|
|
|
|
|
count(IF(register_time '.$week.',1,null)) as week,
|
|
|
|
|
count(IF(register_time '.$mounth.',1,null)) as mounth')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('register_way')
|
|
|
|
|
->order('count desc,register_time')
|
|
|
|
|
->select();
|
|
|
|
|
$count=count($data);
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
static $i=0;
|
|
|
|
|
$i++;
|
|
|
|
|
$data[$key]['rand']=$i;
|
|
|
|
|
}
|
|
|
|
|
$total=$this->data_total($data);
|
|
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
|
|
$size=$row;//每页显示的记录数
|
|
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
|
|
$this->meta_title = '注册方式统计列表';
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function payway_statistics($p=0){
|
|
|
|
|
$page = intval($p);
|
|
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
|
$arraypage=$page;
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$deposit = M('Deposit',"tab_");
|
|
|
|
|
$user=M('User','tab_');
|
|
|
|
|
$spend=M('Spend','tab_');
|
|
|
|
|
|
|
|
|
|
if(!empty($_REQUEST['timestart'])&& !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['pay_time'] = ['between',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399)];
|
|
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
|
|
} elseif(!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['pay_time'] = ['between',array(strtotime($_REQUEST['timestart']),time())];
|
|
|
|
|
unset($_REQUEST['timestart']);
|
|
|
|
|
} elseif(empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['pay_time'] = ['elt',strtotime($_REQUEST['timeend'])+86399];
|
|
|
|
|
unset($_REQUEST['timeend']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// var_dump($_REQUEST);exit;
|
|
|
|
|
if(isset($_REQUEST['pay_way'])&&$_REQUEST['pay_way']!=''){
|
|
|
|
|
$map['pay_way'] = array('in',$_REQUEST['pay_way']) ;
|
|
|
|
|
unset($_REQUEST['pay_way']);
|
|
|
|
|
}
|
|
|
|
|
$map['pay_status']=1;
|
|
|
|
|
$today=total(1);
|
|
|
|
|
$week=total(2);
|
|
|
|
|
$mounth=total(3);
|
|
|
|
|
$data=$spend
|
|
|
|
|
->field('pay_way,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
|
|
sum(IF(pay_time '.$today.',pay_amount,0)) as today,
|
|
|
|
|
sum(IF(pay_time '.$week.',pay_amount,0)) as week,
|
|
|
|
|
sum(IF(pay_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('pay_way')
|
|
|
|
|
->order('count desc,pay_time')
|
|
|
|
|
->select();
|
|
|
|
|
$count=count($data);
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
static $i=0;
|
|
|
|
|
$i++;
|
|
|
|
|
$data[$key]['rand']=$i;
|
|
|
|
|
}
|
|
|
|
|
$total=$this->data_total($data);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
|
|
$size=$row;//每页显示的记录数
|
|
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
|
|
$this->meta_title = '充值方式统计列表';
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function promote_statistics($p=0){
|
|
|
|
|
$page = intval($p);
|
|
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
|
$arraypage=$page;
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$user=M('User','tab_');
|
|
|
|
|
$map['promote_id']=array('egt',0);$map['puid']=0;
|
|
|
|
|
if(!empty($_REQUEST['timestart'])&& !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['between',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399)];
|
|
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
|
|
} elseif(!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['between',array(strtotime($_REQUEST['timestart']),time())];
|
|
|
|
|
unset($_REQUEST['timestart']);
|
|
|
|
|
} elseif(empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['register_time'] = ['elt',strtotime($_REQUEST['timeend'])+86399];
|
|
|
|
|
unset($_REQUEST['timeend']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
|
|
$map['fgame_name'] = $_REQUEST['game_name'];
|
|
|
|
|
unset($_REQUEST['game_name']);
|
|
|
|
|
}
|
|
|
|
|
$today=total(1);
|
|
|
|
|
$week=total(2);
|
|
|
|
|
$mounth=total(3);
|
|
|
|
|
if(isset($_REQUEST['server_id'])){
|
|
|
|
|
$map['server_name'] = $_REQUEST['server_id'];
|
|
|
|
|
$map['game_name'] = $map['fgame_name'];
|
|
|
|
|
$map['u.promote_id'] = $map['promote_id'];
|
|
|
|
|
unset($map['promote_id']);
|
|
|
|
|
unset($map['fgame_name']);
|
|
|
|
|
unset($_REQUEST['server_id']);
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['promote_id'])){
|
|
|
|
|
|
|
|
|
|
$map['_string'] = "u.promote_id = {$_REQUEST['promote_id']} or tab_promote.parent_id = {$_REQUEST['promote_id']} or tab_promote.grand_id = {$_REQUEST['promote_id']} ";
|
|
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$data = M('user_play_info','tab_')->alias('u')
|
|
|
|
|
->field('u.promote_account,u.promote_id,date_format(FROM_UNIXTIME(register_time),"%Y-%m-%d") AS time, count(u.user_id) as count,
|
|
|
|
|
IF(tab_promote.grand_id>0,tab_promote.grand_id,IF(tab_promote.grand_id=0 and tab_promote.parent_id >0,tab_promote.parent_id,u.promote_id)) as promote_id1 ,
|
|
|
|
|
count(IF(register_time '.$today.',1,null)) as today,
|
|
|
|
|
count(IF(register_time '.$week.',1,null)) as week,
|
|
|
|
|
count(IF(register_time '.$mounth.',1,null)) as mounth')
|
|
|
|
|
->join('tab_user on tab_user.id = u.user_id')
|
|
|
|
|
->join('tab_promote on u.promote_id = tab_promote.id','left')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('promote_id1')
|
|
|
|
|
->having('u.promote_id != 0')
|
|
|
|
|
->order('count desc,register_time')
|
|
|
|
|
->select();
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['promote_id'])){
|
|
|
|
|
|
|
|
|
|
$map['_string'] = "promote_id = {$_REQUEST['promote_id']} or tab_promote.parent_id = {$_REQUEST['promote_id']} or tab_promote.grand_id = {$_REQUEST['promote_id']} ";
|
|
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$data=$user
|
|
|
|
|
->field('promote_account,promote_id,date_format(FROM_UNIXTIME(register_time),"%Y-%m-%d") AS time, count(tab_user.id) as count,
|
|
|
|
|
IF(tab_promote.grand_id>0,tab_promote.grand_id,IF(tab_promote.grand_id=0 and tab_promote.parent_id >0,tab_promote.parent_id,promote_id)) as promote_id1 ,
|
|
|
|
|
count(IF(register_time '.$today.',1,null)) as today,
|
|
|
|
|
count(IF(register_time '.$week.',1,null)) as week,
|
|
|
|
|
count(IF(register_time '.$mounth.',1,null)) as mounth')
|
|
|
|
|
->join('tab_promote on promote_id = tab_promote.id','left')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('promote_id1')
|
|
|
|
|
->having('promote_id != 0')
|
|
|
|
|
->order('count desc,register_time')
|
|
|
|
|
->select();
|
|
|
|
|
}
|
|
|
|
|
$count=count($data);
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
static $i=0;
|
|
|
|
|
$i++;
|
|
|
|
|
$data[$key]['rand']=$i;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$total=$this->data_total($data);
|
|
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
|
|
$size=$row;//每页显示的记录数
|
|
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
|
|
$this->meta_title = '渠道注册统计列表';
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function promotepay_statistics($p=0){
|
|
|
|
|
$page = intval($p);
|
|
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
|
$arraypage=$page;
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
$map1['promote_id'] = $map['promote_id']=array('gt',0);
|
|
|
|
|
$spend=M('Spend','tab_');
|
|
|
|
|
if(!empty($_REQUEST['timestart'])&& !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['create_time'] = ['between',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399)];
|
|
|
|
|
$pay_time= " between ".strtotime($_REQUEST['timestart'])." and ".(strtotime($_REQUEST['timeend'])+86399)." ";
|
|
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
|
|
} elseif(!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['create_time'] = ['between',array(strtotime($_REQUEST['timestart']),time())];
|
|
|
|
|
$pay_time= " between ".strtotime($_REQUEST['timestart'])." and ".time()." ";
|
|
|
|
|
unset($_REQUEST['timestart']);
|
|
|
|
|
} elseif(empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
|
|
$map['create_time'] = ['elt',strtotime($_REQUEST['timeend'])+86399];
|
|
|
|
|
$pay_time= " between 0 and ".(strtotime($_REQUEST['timeend'])+86399)." ";
|
|
|
|
|
unset($_REQUEST['timeend']);
|
|
|
|
|
}else{
|
|
|
|
|
$pay_time = " between 0 and ".time();
|
|
|
|
|
}
|
|
|
|
|
$map1['pay_status'] = $map['pay_status']=1;
|
|
|
|
|
$today=total(1);
|
|
|
|
|
$week=total(2);
|
|
|
|
|
$mounth=total(3);
|
|
|
|
|
$map1['pay_way'] = $map['pay_way'] = array('gt',0);
|
|
|
|
|
/* $data=$spend
|
|
|
|
|
->field('promote_account,promote_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
|
|
sum(IF(pay_time '.$today.',pay_amount,0)) as today,
|
|
|
|
|
sum(IF(pay_time '.$week.',pay_amount,0)) as week,
|
|
|
|
|
sum(IF(pay_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('promote_id')
|
|
|
|
|
->order('count desc,pay_time')
|
|
|
|
|
->select(); */
|
|
|
|
|
|
|
|
|
|
$bindrecharge_data = M('bind_recharge','tab_')
|
|
|
|
|
->field('max(id) as id,promote_account,promote_id,create_time as ordertime,date_format(FROM_UNIXTIME(create_time),"%Y-%m-%d") AS time,
|
|
|
|
|
floor(sum(IF(create_time '.$pay_time.',real_amount,0))*100) as scount,
|
|
|
|
|
floor(sum(IF(create_time '.$today.',real_amount,0))*100) as today,
|
|
|
|
|
floor(sum(IF(create_time '.$week.',real_amount,0))*100) as week,
|
|
|
|
|
floor(sum(IF(create_time '.$mounth.',real_amount,0))*100) as mounth')
|
|
|
|
|
->where($map1)
|
|
|
|
|
->group('promote_id')
|
|
|
|
|
->select(false);
|
|
|
|
|
|
|
|
|
|
$deposit_data = M('deposit','tab_')
|
|
|
|
|
->field('max(id) as id,promote_account,promote_id,create_time as ordertime,date_format(FROM_UNIXTIME(create_time),"%Y-%m-%d") AS time,
|
|
|
|
|
floor(sum(IF(create_time '.$pay_time.',pay_amount,0))*100) as scount,
|
|
|
|
|
floor(sum(IF(create_time '.$today.',pay_amount,0))*100) as today,
|
|
|
|
|
floor(sum(IF(create_time '.$week.',pay_amount,0))*100) as week,
|
|
|
|
|
floor(sum(IF(create_time '.$mounth.',pay_amount,0))*100) as mounth')
|
|
|
|
|
->where($map1)
|
|
|
|
|
->group('promote_id')
|
|
|
|
|
->select(false);
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
|
|
if(isset($_REQUEST['server_id'])){
|
|
|
|
|
$map['server_name'] = $_REQUEST['server_id'];
|
|
|
|
|
unset($_REQUEST['server_id']);
|
|
|
|
|
}
|
|
|
|
|
$data=$spend
|
|
|
|
|
->field('max(id) as id,promote_account,promote_id,pay_time as ordertime,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time,
|
|
|
|
|
floor(sum(IF(pay_time '.$pay_time.',pay_amount,0))*100) as scount,
|
|
|
|
|
floor(sum(IF(pay_time '.$today.',pay_amount,0))*100) as today,
|
|
|
|
|
floor(sum(IF(pay_time '.$week.',pay_amount,0))*100) as week,
|
|
|
|
|
floor(sum(IF(pay_time '.$mounth.',pay_amount,0))*100) as mounth')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('promote_id')
|
|
|
|
|
->select(false);
|
|
|
|
|
}else{
|
|
|
|
|
$data=$spend
|
|
|
|
|
->field('max(id) as id,promote_account,promote_id,pay_time as ordertime,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time,
|
|
|
|
|
floor(sum(IF(pay_time '.$pay_time.',pay_amount,0))*100) as scount,
|
|
|
|
|
floor(sum(IF(pay_time '.$today.',pay_amount,0))*100) as today,
|
|
|
|
|
floor(sum(IF(pay_time '.$week.',pay_amount,0))*100) as week,
|
|
|
|
|
floor(sum(IF(pay_time '.$mounth.',pay_amount,0))*100) as mounth')
|
|
|
|
|
->where($map)
|
|
|
|
|
->union(' ('.$bindrecharge_data.') ')
|
|
|
|
|
->union(' ('.$deposit_data.') ')
|
|
|
|
|
->group('promote_id')
|
|
|
|
|
->select(false);
|
|
|
|
|
}
|
|
|
|
|
if(isset($_REQUEST['promote_id'])){
|
|
|
|
|
$condition['_string'] = "promote_id = {$_REQUEST['promote_id']} or tab_promote.parent_id = {$_REQUEST['promote_id']} or tab_promote.grand_id = {$_REQUEST['promote_id']} ";
|
|
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
|
|
}
|
|
|
|
|
$data = $spend->field('a.promote_account,a.promote_id,a.time,sum(a.scount) as count,sum(a.today) as today,sum(a.week) as week,sum(a.mounth) as mounth,IF(tab_promote.grand_id>0,tab_promote.grand_id,IF(tab_promote.grand_id=0 and tab_promote.parent_id >0,tab_promote.parent_id,promote_id)) as promote_id1')
|
|
|
|
|
->join('tab_promote on promote_id = tab_promote.id','left')
|
|
|
|
|
->where($condition)
|
|
|
|
|
->table('('.$data.') as a')->group('promote_id1')->order('count desc,a.ordertime')->select();
|
|
|
|
|
$count=count($data);
|
|
|
|
|
// dump($condition);die;
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
static $i=0;
|
|
|
|
|
$i++;
|
|
|
|
|
$data[$key]['rand']=$i;
|
|
|
|
|
$data[$key]['count']=$value['count']/100;
|
|
|
|
|
$data[$key]['today']=$value['today']/100;
|
|
|
|
|
$data[$key]['week']=$value['week']/100;
|
|
|
|
|
$data[$key]['mounth']=$value['mounth']/100;
|
|
|
|
|
/* $adata=$this->day_data('Spend',array('promote_id'=>$value['promote_id']));
|
|
|
|
|
$data[$key]['today']=$adata['today']==''?0:$adata['today'];
|
|
|
|
|
$data[$key]['week']=$adata['week']==''?0:$adata['week'];
|
|
|
|
|
$data[$key]['mounth']=$adata['mounth']==''?0:$adata['mounth']; */
|
|
|
|
|
if($data[$key]['promote_id']=='0'){
|
|
|
|
|
unset($data[$key]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$total=$this->data_total($data);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
|
|
$size=$row;//每页显示的记录数
|
|
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
|
|
$this->meta_title = '渠道充值统计列表';
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
public function data_total($data){
|
|
|
|
|
$total['sum_count']=array_sum(array_column($data,'count'));
|
|
|
|
|
$total['sum_today']=array_sum(array_column($data,'today'));
|
|
|
|
|
$total['sum_week']=array_sum(array_column($data,'week'));
|
|
|
|
|
$total['sum_mounth']=array_sum(array_column($data,'mounth'));
|
|
|
|
|
return $total;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function day_data($model='User',$column1=array(),$column2='count'){
|
|
|
|
|
//今日本周本月不跟随选择的实现变动 只以当前日期为基准
|
|
|
|
|
$table=M($model,'tab_');
|
|
|
|
|
$today=total(1);
|
|
|
|
|
$week=total(2);
|
|
|
|
|
$mounth=total(3);
|
|
|
|
|
if($model=='User'){
|
|
|
|
|
$data['today']=$table->field('count(id) as count')->where($column1)->where('register_time'.$today)->select();
|
|
|
|
|
$data['week']=$table->field('count(id) as count')->where($column1)->where('register_time'.$week)->select();
|
|
|
|
|
$data['mounth']=$table->field('count(id) as count')->where($column1)->where('register_time'.$mounth)->select();
|
|
|
|
|
}elseif($model=='Spend'){
|
|
|
|
|
$data['today']=$table->field('sum(pay_amount) as count')->where($column1)->where('pay_time'.$today)->where(array('pay_status'=>1))->select();
|
|
|
|
|
$data['week']=$table->field('sum(pay_amount) as count')->where($column1)->where('pay_time'.$week)->where(array('pay_status'=>1))->select();
|
|
|
|
|
$data['mounth']=$table->field('sum(pay_amount) as count')->where($column1)->where('pay_time'.$mounth)->where(array('pay_status'=>1))->select();
|
|
|
|
|
}
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
$v=reset($value);
|
|
|
|
|
$data[$key]=$v['count'];
|
|
|
|
|
}
|
|
|
|
|
return $data;
|
|
|
|
|
}
|
|
|
|
|
//渠道下注册详细信息
|
|
|
|
|
public function zhuce_detail($promote_id,$game_name='',$server_name=''){
|
|
|
|
|
$map['promote_id'] = $promote_id;
|
|
|
|
|
if(!empty($game_name)){
|
|
|
|
|
$map['fgame_name'] = $game_name;
|
|
|
|
|
}
|
|
|
|
|
if(empty($server_name)){
|
|
|
|
|
$data = M('user','tab_')->field('count(id) as count,fgame_name as game_name')->where($map)->order('fgame_id')->group('game_name')->select();
|
|
|
|
|
}else{
|
|
|
|
|
$map['server_name'] = $server_name;
|
|
|
|
|
$map['game_name'] = $map['fgame_name'];
|
|
|
|
|
unset($map['fgame_name']);
|
|
|
|
|
$data = M('user_play_info','tab_')->field('count(user_id) as count,game_name')->where($map)->order('game_id')->group('game_name')->select();
|
|
|
|
|
}
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
//渠道下充值详细信息
|
|
|
|
|
public function chongzhi_detail($promote_id,$game_name='',$server_name=''){
|
|
|
|
|
$map['promote_id'] = $promote_id;
|
|
|
|
|
$map['pay_status']=1;
|
|
|
|
|
$map['pay_way'] =array('GT',0);
|
|
|
|
|
if($game_name){
|
|
|
|
|
$map['game_name'] = $game_name;
|
|
|
|
|
}
|
|
|
|
|
if($server_name){
|
|
|
|
|
$map['server_name'] = $server_name;
|
|
|
|
|
}
|
|
|
|
|
$data = M('spend','tab_')->field('sum(pay_amount) as total_amount,game_name')->where($map)->order('game_id')->group('game_name')->select();
|
|
|
|
|
$this->assign('list_data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
public function uc_statistics($p=1){
|
|
|
|
|
if(isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])){
|
|
|
|
|
$map.='pay_time between '.strtotime($_REQUEST['timestart']).' and '.(strtotime($_REQUEST['timeend'])+24*60*60-1).' and ';
|
|
|
|
|
}
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
|
|
$map.='game_name like '.'"'.'%'.$_REQUEST['game_name'].'%'.'" and ';
|
|
|
|
|
$map1.='game_name like '.'"'.'%'.$_REQUEST['game_name'].'%'.'" and ';
|
|
|
|
|
$map2.='game_name like '.'"'.'%'.$_REQUEST['game_name'].'%'.'" and ';
|
|
|
|
|
unset($_REQUEST['game_name']);
|
|
|
|
|
}
|
|
|
|
|
$map.=" version=1 and ";
|
|
|
|
|
$map.="platform!=1";
|
|
|
|
|
$uc=new Ucservice();
|
|
|
|
|
$page=$p;
|
|
|
|
|
$data=$uc->uc_recharge_select($page,10,$map);
|
|
|
|
|
$map1.='pay_time'.total(1).' and ';
|
|
|
|
|
$map1.=" version=1 and ";
|
|
|
|
|
$map1.="platform!=1";
|
|
|
|
|
$map2.='pay_time'.total(5).' and ';
|
|
|
|
|
$map2.=" version=1 and ";
|
|
|
|
|
$map2.="platform!=1";
|
|
|
|
|
//今天
|
|
|
|
|
$ttotal=$uc->uc_recharge_select($page,10,$map1)['total']?$uc->uc_recharge_select($page,10,$map1)['total']:0;
|
|
|
|
|
//昨天
|
|
|
|
|
$ytotal=$uc->uc_recharge_select($page,10,$map2)['total']?$uc->uc_recharge_select($page,10,$map2)['total']:0;
|
|
|
|
|
//总共
|
|
|
|
|
$total=$data['total']?$data['total']:0;
|
|
|
|
|
//该叶
|
|
|
|
|
$pagetotal=$data['totalpage'][0]['totalpage']?$data['totalpage'][0]['totalpage']:0;
|
|
|
|
|
$this->meta_title = 'Uc充值列表';
|
|
|
|
|
$this->assign('ttotal',$ttotal);
|
|
|
|
|
$this->assign('ytotal',$ytotal);
|
|
|
|
|
$this->assign('pagetotal',$pagetotal);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
$count=$data['count'];
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
unset($data['count']);
|
|
|
|
|
unset($data['total']);
|
|
|
|
|
unset($data['totalpage']);
|
|
|
|
|
$this->assign('data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
public function uc_deposit($p=1){
|
|
|
|
|
if(isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])){
|
|
|
|
|
$map.='create_time between '.strtotime($_REQUEST['timestart']).' and '.(strtotime($_REQUEST['timeend'])+24*60*60-1).' and ';
|
|
|
|
|
}
|
|
|
|
|
$map.=" version=1 and ";
|
|
|
|
|
$map.="platform!=1";
|
|
|
|
|
$uc=new Ucservice();
|
|
|
|
|
$page=$p;
|
|
|
|
|
$data=$uc->uc_deposit_select($page,10,$map);
|
|
|
|
|
$map1.='create_time'.total(1).' and ';
|
|
|
|
|
$map1.=" version=1 and ";
|
|
|
|
|
$map1.="platform!=1";
|
|
|
|
|
$map2.='create_time'.total(5).' and ';
|
|
|
|
|
$map2.=" version=1 and ";
|
|
|
|
|
$map2.="platform!=1";
|
|
|
|
|
//今天
|
|
|
|
|
$ttotal=$uc->uc_deposit_select($page,10,$map1)['total']?$uc->uc_deposit_select($page,10,$map1)['total']:0;
|
|
|
|
|
//昨天
|
|
|
|
|
$ytotal=$uc->uc_deposit_select($page,10,$map2)['total']?$uc->uc_deposit_select($page,10,$map2)['total']:0;
|
|
|
|
|
//总共
|
|
|
|
|
$total=$data['total']?$data['total']:0;
|
|
|
|
|
//该叶
|
|
|
|
|
$pagetotal=$data['totalpage'][0]['totalpage']?$data['totalpage'][0]['totalpage']:0;
|
|
|
|
|
$this->meta_title = 'Uc平台币充值列表';
|
|
|
|
|
$this->assign('ttotal',$ttotal);
|
|
|
|
|
$this->assign('ytotal',$ytotal);
|
|
|
|
|
$this->assign('pagetotal',$pagetotal);
|
|
|
|
|
$this->assign('total',$total);
|
|
|
|
|
$count=$data['count'];
|
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
|
|
|
|
|
|
|
|
|
|
$page = set_pagination($count,$row);
|
|
|
|
|
if($page) {$this->assign('_page', $page);}
|
|
|
|
|
|
|
|
|
|
unset($data['count']);
|
|
|
|
|
unset($data['total']);
|
|
|
|
|
unset($data['totalpage']);
|
|
|
|
|
$this->assign('data',$data);
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
}
|