Merge branch 'hotfix/platform_statistic_search' of wmtx/platform into release

搜索优化
master
廖金灵 4 years ago committed by Gogs
commit b40fe342a9

@ -3171,15 +3171,25 @@ class ExportController extends Controller
array('week', "本周注册"),
array('mounth', "本月注册"),
);
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$arraypage=$page;
$row = 10;
$user=M('User','tab_');
$map['fgame_id']=array('egt',0);$map['puid'] = 0;
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
$arraypage = $page;
if (isset($_REQUEST['row'])) {
$row = $_REQUEST['row'];
} else {
$row = 10;
}
$user = M('User', 'tab_');
$map['fgame_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']);
@ -3188,14 +3198,15 @@ class ExportController extends Controller
unset($_REQUEST['timeend']);
}
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
unset($_REQUEST['start']);unset($_REQUEST['end']);
// var_dump($_REQUEST);exit;
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map['tab_game.relation_game_id'] = $_REQUEST['game_id'];
}
if(isset($_REQUEST['game_id'])&&$_REQUEST['game_id']!=''){
$map['tab_game.relation_game_id'] =$_REQUEST['game_id'];
unset($_REQUEST['game_id']);
if (!empty($_REQUEST['game_type'])) {
$map['tab_game.sdk_version'] = $_REQUEST['game_type'];
}
$today = total(1);
$week = total(2);
$mounth = total(3);
@ -3203,26 +3214,32 @@ class ExportController extends Controller
setPowerPromoteIds($map);
$data = $user
->field('tab_game.relation_game_id,tab_game.relation_game_name,date_format(FROM_UNIXTIME( register_time),"%Y-%m-%d") AS time, count(tab_user.id) as count')
->join('tab_game on tab_game.id = fgame_id', 'left')
->where($map)
->join('tab_game on tab_game.id = fgame_id', 'left')
->group('tab_game.relation_game_id')
->order('count desc,register_time')
->select();
// dd($data);
$map2 = array();
$map['fgame_id'] = array('egt', 0);
$map['puid'] = 0;
$map2['fgame_id'] = array('egt', 0);
$map2['puid'] = 0;
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map2['tab_game.relation_game_id'] = $_REQUEST['game_id'];
}
if (!empty($_REQUEST['game_type'])) {
$map2['tab_game.sdk_version'] = $_REQUEST['game_type'];
}
setPowerPromoteIds($map2);
$data2 = $user->field('tab_game.relation_game_id,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_game on tab_game.id = fgame_id', 'left')
count(IF(register_time ' . $week . ',1,null)) as week,
count(IF(register_time ' . $mounth . ',1,null)) as mounth')
->where($map2)
->join('tab_game on tab_game.id = fgame_id', 'left')
->group('tab_game.relation_game_id')
->select();
$data2 = array_column($data2, null, 'relation_game_id');
// dd($data2);
$count = count($data);
foreach ($data as $key => $value) {
static $i = 0;
@ -3236,15 +3253,23 @@ class ExportController extends Controller
$data[$key]['week'] = $data2[$value['relation_game_id']]['week'];
$data[$key]['mounth'] = $data2[$value['relation_game_id']]['mounth'];
}
$total=A('Platform')->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);
$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);
}
$data=my_sort($data,$data_order_type,(int)$data_order);
$size=$row;//每页显示的记录数
$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);
@ -3276,47 +3301,74 @@ class ExportController extends Controller
array('week', "本周充值"),
array('mounth', "本月充值"),
);
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$arraypage=$page;
$row = 10;
$spend=M('Spend','tab_');
$deposit = M('Deposit',"tab_");
$map['game_id']=array('gt',0);
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
$arraypage = $page;
if (isset($_REQUEST['row'])) {
$row = $_REQUEST['row'];
} else {
$row = 10;
}
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
unset($_REQUEST['start']);unset($_REQUEST['end']);
$spend = M('Spend', 'tab_');
$deposit = M('Deposit', "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']);
}
if(isset($_REQUEST['game_name'])&&$_REQUEST['game_name']!=''){
$map['game_id'] =$_REQUEST['game_name'];
unset($_REQUEST['game_name']);
//为数据权限添加
setPowerPromoteIds($map);
$map['game_id'] = array('gt', 0);
// var_dump($_REQUEST);exit;
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map['tab_game.relation_game_id'] = $_REQUEST['game_id'];
//unset($_REQUEST['game_id']);
}
if (!empty($_REQUEST['game_type'])) {
$map['tab_spend.sdk_version'] = $_REQUEST['game_type'];
//unset($_REQUEST['game_type']);
}
$map['tab_spend.pay_status'] = 1;
$today = total(1);
$week = total(2);
$mounth = total(3);
$data = $spend
->field('tab_game.relation_game_name as game_name, tab_game.relation_game_id as game_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count') ->where($map)
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->where($map)
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->group('tab_game.relation_game_id')
->order('count desc,pay_time')
->select();
//今日、本周、本月不随搜索条件而变动
$map2['tab_spend.pay_status'] = 1;
$map2['game_id'] = array('gt', 0);
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map2['tab_game.relation_game_id'] = $_REQUEST['game_id'];
//unset($_REQUEST['game_id']);
}
if (!empty($_REQUEST['game_type'])) {
$map2['tab_spend.sdk_version'] = $_REQUEST['game_type'];
//unset($_REQUEST['game_type']);
}
setPowerPromoteIds($map2);
$data2 = $spend
->field('tab_game.relation_game_id as game_id,sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,
sum(IF(pay_time ' . $week . ',pay_amount,0)) as week,
->field('tab_game.relation_game_id as game_id, 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')
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->join('tab_game on tab_game.id = tab_spend.game_id', 'left')
->where($map2)
->group('tab_game.relation_game_id')
->select();
@ -3331,24 +3383,27 @@ class ExportController extends Controller
$data[$key]['week'] = $data2[$value['game_id']]['week'];
$data[$key]['mounth'] = $data2[$value['game_id']]['mounth'];
}
$total=A('Platform')->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);
$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);
}
if($count > $row){
$page = new \Think\Page($count, $row);
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
$this->assign('_page', $page->show());
$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()函数用于求大于数字的最小整数
//$this->checkListOrCountAuthRestMap($map,[]);
$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);
$length = count($data);
$data[$length] = array(
'game_name'=>'汇总',

@ -42,7 +42,10 @@ class PlatformController extends ThinkController
// var_dump($_REQUEST);exit;
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map['tab_game.relation_game_id'] = $_REQUEST['game_id'];
unset($_REQUEST['game_id']);
}
if (!empty($_REQUEST['game_type'])) {
$map['tab_game.sdk_version'] = $_REQUEST['game_type'];
}
$today = total(1);
@ -60,6 +63,14 @@ class PlatformController extends ThinkController
$map2 = array();
$map2['fgame_id'] = array('egt', 0);
$map2['puid'] = 0;
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map2['tab_game.relation_game_id'] = $_REQUEST['game_id'];
}
if (!empty($_REQUEST['game_type'])) {
$map2['tab_game.sdk_version'] = $_REQUEST['game_type'];
}
setPowerPromoteIds($map2);
$data2 = $user->field('tab_game.relation_game_id,count(IF(register_time ' . $today . ',1,null)) as today,
@ -147,7 +158,11 @@ class PlatformController extends ThinkController
// var_dump($_REQUEST);exit;
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map['tab_game.relation_game_id'] = $_REQUEST['game_id'];
unset($_REQUEST['game_id']);
//unset($_REQUEST['game_id']);
}
if (!empty($_REQUEST['game_type'])) {
$map['tab_spend.sdk_version'] = $_REQUEST['game_type'];
//unset($_REQUEST['game_type']);
}
$map['tab_spend.pay_status'] = 1;
$today = total(1);
@ -165,6 +180,15 @@ class PlatformController extends ThinkController
//今日、本周、本月不随搜索条件而变动
$map2['tab_spend.pay_status'] = 1;
$map2['game_id'] = array('gt', 0);
// var_dump($_REQUEST);exit;
if (isset($_REQUEST['game_id']) && $_REQUEST['game_id'] != '') {
$map2['tab_game.relation_game_id'] = $_REQUEST['game_id'];
//unset($_REQUEST['game_id']);
}
if (!empty($_REQUEST['game_type'])) {
$map2['tab_spend.sdk_version'] = $_REQUEST['game_type'];
//unset($_REQUEST['game_type']);
}
setPowerPromoteIds($map2);
$data2 = $spend
->field('tab_game.relation_game_id as game_id, sum(IF(pay_time ' . $today . ',pay_amount,0)) as today,

@ -60,11 +60,18 @@
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_id" class="select_gallery" >
<option value="">游戏名称</option>
<volist name="games" id="vo">
<option game-id="{$vo.relation_game_id}" value="{$vo.relation_game_id}">{$vo.relation_game_name}</option>
<volist name=":getAllGame()" id="vo">
<option value="{$vo.game_id}" <if condition="$vo.game_id eq I('game_id')">selected</if> >{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1" <?php echo I('game_type') == 1 ? "selected" : ''?>>安卓</option>
<option value="2" <?php echo I('game_type') == 2 ? "selected" : ''?>>苹果</option>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Platform/game_statistics','model='.$model['name'] .'&row='.I('row'),false)}">搜索</a>
@ -167,6 +174,7 @@
'timestart'=>$_GET['timestart'],
'timeend'=>$_GET['timeend'],
'game_id'=>$_GET['game_id'],
'game_type'=>$_GET['game_type'],
'p'=>$_GET['p'],
'xlsname'=>'统计_平台统计_游戏注册统计',
),

@ -56,13 +56,20 @@
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_id" class="select_gallery">
<select id="game_id" name="game_id" class="select_gallery" >
<option value="">游戏名称</option>
<volist name="games" id="vo">
<option game-id="{$vo.relation_game_id}" value="{$vo.relation_game_id}">{$vo.relation_game_name}</option>
<volist name=":getAllGame()" id="vo">
<option value="{$vo.game_id}" <if condition="$vo.game_id eq I('game_id')">selected</if> >{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1" <?php echo I('game_type') == 1 ? "selected" : ''?>>安卓</option>
<option value="2" <?php echo I('game_type') == 2 ? "selected" : ''?>>苹果</option>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Platform/gamepay_statistics','model='.$model['name'].'&row='.I('row'),false)}">搜索</a>
@ -136,7 +143,7 @@
<div class="page">
<if condition="$role_export_check eq true ">
<a class="sch-btn" href="{:U('Export/platform_statistics',
array('timestart'=>$_GET['timestart'],'timeend'=>$_GET['timeend'],'type'=>1,'game_id'=>$_GET['game_id'],p=>$_GET['p'],'xlsname'=>'统计_平台统计_游戏充值统计',)
array('timestart'=>$_GET['timestart'],'timeend'=>$_GET['timeend'],'type'=>1,'game_type'=>$_GET['game_type'], 'game_id'=>$_GET['game_id'],p=>$_GET['p'],'xlsname'=>'统计_平台统计_游戏充值统计',)
,false)}">导出</a>
</if>
{$_page|default=''}

Loading…
Cancel
Save