From fd23b640eabb8cce4cac27ae15e0ae20e1a1339f Mon Sep 17 00:00:00 2001 From: chenzhi Date: Thu, 26 Dec 2019 20:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A8=E5=B9=BF=E5=91=98?= =?UTF-8?q?=E5=85=85=E5=80=BC=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/PlatformController.class.php | 268 +++++++++--------- .../View/Platform/promotepay_statistics.html | 184 +++++++----- 2 files changed, 255 insertions(+), 197 deletions(-) diff --git a/Application/Admin/Controller/PlatformController.class.php b/Application/Admin/Controller/PlatformController.class.php index f31938318..3928991ad 100644 --- a/Application/Admin/Controller/PlatformController.class.php +++ b/Application/Admin/Controller/PlatformController.class.php @@ -56,7 +56,6 @@ class PlatformController extends ThinkController ->group('fgame_id') ->order('count desc,register_time') ->select(); -// dd($data); $map2 = array(); $map2['fgame_id'] = array('egt', 0); $map2['puid'] = 0; @@ -69,7 +68,6 @@ class PlatformController extends ThinkController ->group('fgame_id') ->select(); $data2 = array_column($data2, null, 'fgame_id'); -// dd($data2); $count = count($data); foreach ($data as $key => $value) { static $i = 0; @@ -612,19 +610,6 @@ class PlatformController extends ThinkController $week = total(2); $mounth = total(3); unset( $map['create_time']); - - //获取所有会长 - $promote_map = "`chain` = '/'"; - if (isset($_REQUEST['promote_id'])) { - $promote_map = "`chain` = '%/{$_REQUEST['promote_id']}/%' OR id = {$_REQUEST['promote_id']}"; - } - //为数据权限添加 - setPowerPromoteIds($map); - $promote_map2 = array(); - setPowerPromoteIds($promote_map2, 'id'); - $promote = M("promote","tab_")->field("id,account")->page($page,$row)->where($promote_map)->where($promote_map2)->select(); - $pcount = M("promote","tab_")->field("count(*) acount")->where($promote_map)->where($promote_map2)->find()['acount']; - // var_dump( $promote); $tweek = total(2,false); $tmonth = total(3,false); @@ -635,50 +620,68 @@ class PlatformController extends ThinkController }else{ $tmin = $tmonth[1][0]; } + + //为数据权限添加 + setPowerPromoteIds($map, 'tp1.id'); + if (isset($_REQUEST['promote_id'])) { + $map['tp1.id'] = $_REQUEST['promote_id']; + } else { + $map['tp1.chain'] = '/'; + } - $data =array(); - for ($i=0; $i < count($promote); $i++) { - # code... - $proid = M("promote","tab_")->field("id")->where("`chain` like '%/{$promote[$i]['id']}/%'")->select(); - $str = ''; - for($k=0; $kfield('floor(sum(IF(pay_time ' . $pay_time . ',pay_amount,0))*100) as count') - ->where($map) - ->find(); - $tmap = $map; - if(isset($map['pay_time'])){ - $tmap['pay_time'] = ['between', array($tmin,$tmonth[1][1])]; + + if (isset($_REQUEST['game_name'])) { + $map['s.game_name'] = $_REQUEST['game_name']; + if (isset($_REQUEST['server_id'])) { + $map['s.server_name'] = $_REQUEST['server_id']; + unset($_REQUEST['server_id']); } - $tdbdata = $spend - ->field(' - 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($tmap) - ->find(); - $dbdata['today']= $tdbdata['today']; - $dbdata['week']= $tdbdata['week']; - $dbdata['mounth']= $tdbdata['mounth']; - - $dbdata['promote_account'] = $promote[$i]['account']; - $dbdata['promote_id'] = $promote[$i]['id']; + } + $data = M('promote', 'tab_')->alias('tp1') + ->field('tp1.account as promote_account,tp1.id, + floor(sum(pay_amount)*100) as count') + ->join("tab_promote AS tp2 ON tp2.`chain` LIKE CONCAT('%/', tp1.id, '/%') OR tp2.id = tp1.id", 'left') + ->join("tab_spend as s on tp2.id = s.promote_id", 'left') + ->where($map) + ->group('tp1.id') + ->order('count desc') + ->select(); + //今日/本周/本月不变 + $tmap = $map; + if(isset($map['pay_time'])){ + $tmap['pay_time'] = ['between', array($tmin,$tmonth[1][1])]; + } + $tdata = M('promote', 'tab_')->alias('tp1') + ->field('tp1.account as promote_account,tp1.id, + floor(sum(IF(s.pay_time ' . $today . ',pay_amount,0))*100) as today, + floor(sum(IF(s.pay_time ' . $week . ',pay_amount,0))*100) as week, + floor(sum(IF(s.pay_time ' . $mounth . ',pay_amount,0))*100) as mounth') + ->join("tab_promote AS tp2 ON tp2.`chain` LIKE CONCAT('%/', tp1.id, '/%') OR tp2.id = tp1.id", 'left') + ->join("tab_spend as s on tp2.id = s.promote_id", 'left') + ->where($tmap) + ->group('tp1.id') + ->select(); + $tmdata = []; + foreach($data as $k=>$v){ + $v['today'] = 0; + $v['week'] = 0; + $v['mounth'] = 0; + $tmdata[$v['id']] = $v; + } + foreach ($tdata as $k => $v) { + + $tmdata[$v['id']]['today'] = $v['today']; + $tmdata[$v['id']]['week'] = $v['week']; + $tmdata[$v['id']]['mounth'] = $v['mounth']; - $data[] = $dbdata; } + $data = []; + foreach($tmdata as $k => $v){ + $data[] = $v; + } + // dd($data); + $count = count($data); foreach ($data as $key => $value) { $value['count'] ?: 0; @@ -703,7 +706,7 @@ class PlatformController extends ThinkController $this->assign('userarpu_order_type', $data_order_type); } - $page = set_pagination($pcount, $row); + $page = set_pagination($count, $row); if ($page) { $this->assign('_page', $page); } @@ -712,13 +715,14 @@ class PlatformController extends ThinkController $size = $row;//每页显示的记录数 $pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数 + $data = array_slice($data, ($arraypage - 1) * $size, $size); $this->meta_title = '渠道充值统计列表'; $this->assign('list_data', $data); $this->assign("is_admin",is_administrator()); $this->display(); } - function promotepay_statistics_1($p = 0) + public function promotepay_statistics1($p = 0) { $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 @@ -731,84 +735,97 @@ class PlatformController extends ThinkController $map1['promote_id'] = $map['promote_id'] = array('egt', 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) . " "; + $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['create_time'] = ['between', array(strtotime($_REQUEST['timestart']), time())]; - $pay_time = " between " . strtotime($_REQUEST['timestart']) . " and " . time() . " "; + $map['pay_time'] = ['between', array(strtotime($_REQUEST['timestart']), 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) . " "; + $map['pay_time'] = ['elt', strtotime($_REQUEST['timeend']) + 86399]; unset($_REQUEST['timeend']); } else { - $pay_time = " between 0 and " . time(); + $map['pay_time'] = ['between', array(0, time())]; + // $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); - - $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']); + unset( $map['create_time']); + + //获取所有会长 + $promote_map = "`chain` = '/'"; + if (isset($_REQUEST['promote_id'])) { + $promote_map = "`chain` = '%/{$_REQUEST['promote_id']}/%' OR id = {$_REQUEST['promote_id']}"; + } + //为数据权限添加 + setPowerPromoteIds($map); + $promote_map2 = array(); + setPowerPromoteIds($promote_map2, 'id'); + $promote = M("promote","tab_")->field("id,account")->page($page,$row)->where($promote_map)->where($promote_map2)->select(); + $pcount = M("promote","tab_")->field("count(*) acount")->where($promote_map)->where($promote_map2)->find()['acount']; + + // var_dump( $promote); + $tweek = total(2,false); + $tmonth = total(3,false); + //获取最小 + $tmin = 0; + if($tweek[1][0] < $tmonth[1][0]){ + $tmin = $tweek[1][0]; + }else{ + $tmin = $tmonth[1][0]; + } + + + $data =array(); + for ($i=0; $i < count($promote); $i++) { + # code... + $proid = M("promote","tab_")->field("id")->where("`chain` like '%/{$promote[$i]['id']}/%'")->select(); + $str = ''; + for($k=0; $kfield('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') + $str .= "{$promote[$i]['id']}"; + $map['promote_id'] = array("in",$str); + 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']); + } + } + $dbdata = $spend + ->field('floor(sum(IF(pay_time ' . $pay_time . ',pay_amount,0))*100) as count') ->where($map) - // ->union(' (' . $bindrecharge_data . ') ') - // ->union(' (' . $deposit_data . ') ') - ->group('promote_id') - ->select(false); - } - $promote_map = "tp1.`chain` = '/'"; - if (isset($_REQUEST['promote_id'])) { - $promote_map = "tp1.`id` = {$_REQUEST['promote_id']}"; - unset($_REQUEST['promote_id']); + ->find(); + $tmap = $map; + if(isset($map['pay_time'])){ + $tmap['pay_time'] = ['between', array($tmin,$tmonth[1][1])]; + } + $tdbdata = $spend + ->field(' + 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($tmap) + ->find(); + $dbdata['today']= $tdbdata['today']; + $dbdata['week']= $tdbdata['week']; + $dbdata['mounth']= $tdbdata['mounth']; + + $dbdata['promote_account'] = $promote[$i]['account']; + $dbdata['promote_id'] = $promote[$i]['id']; + + $data[] = $dbdata; } - $data = $spend->field('t.pid as promote_id,t.promote_account,sum(a.scount) AS count,sum(a.today) AS today,sum(a. WEEK) AS WEEK,sum(a.mounth) AS mounth') - ->join("inner JOIN (SELECT tp2.*, tp1.id AS pid, tp1.account as promote_account FROM tab_promote tp1 LEFT JOIN tab_promote tp2 ON tp2.`chain` LIKE CONCAT('%/', tp1.id, '/%') where $promote_map ) AS t ON promote_id = t.id or promote_id = t.pid") - ->where($condition)->table('(' . $data . ') as a')->group('t.pid')->order('count desc,a.ordertime')->select(); $count = count($data); foreach ($data as $key => $value) { + $value['count'] ?: 0; + $value['today'] ?: 0; + $value['week'] ?: 0; + $value['mounth'] ?: 0; static $i = 0; $i++; $data[$key]['rand'] = $i; @@ -816,14 +833,8 @@ class PlatformController extends ThinkController $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'] != '') { @@ -833,19 +844,20 @@ class PlatformController extends ThinkController $this->assign('userarpu_order_type', $data_order_type); } - $page = set_pagination($count, $row); + $page = set_pagination($pcount, $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("is_admin",is_administrator()); $this->display(); + } public function data_total($data) diff --git a/Application/Admin/View/Platform/promotepay_statistics.html b/Application/Admin/View/Platform/promotepay_statistics.html index d951b5063..e9fbdd1a8 100644 --- a/Application/Admin/View/Platform/promotepay_statistics.html +++ b/Application/Admin/View/Platform/promotepay_statistics.html @@ -88,21 +88,51 @@ - - + + + --> + + + + + + + + + + + + @@ -121,7 +151,7 @@ - + @@ -131,7 +161,7 @@ - + @@ -209,69 +239,85 @@ // }); // }); $(".paixu").click(function(){ - $ddd=$(this).attr('date-url'); - $lzhuce="{:I('lzhuce')}"; - $phb = "{:I('phb')}"; - $dzhuce = "{:I('dzhuce')}"; - $wzhuce = "{:I('wzhuce')}"; - $mzhuce = "{:I('mzhuce')}"; - // $sss="{:I('group')}"; - if($ddd=='lzhuce'){ - if($lzhuce==1){ - $(".sortBy").attr('name','lzhuce'); - $(".sortBy").attr('value',2); - $("#search").click(); - }else{ - $(".sortBy").attr('name','lzhuce'); - $(".sortBy").attr('value',1); - $("#search").click(); - } - } - if($ddd=='phb'){ - if($phb==1){ - $(".sortBy").attr('name','phb'); - $(".sortBy").attr('value',2); - $("#search").click(); - }else{ - $(".sortBy").attr('name','phb'); - $(".sortBy").attr('value',1); - $("#search").click(); - } - } - if($ddd=='dzhuce'){ - if($dzhuce==1){ - $(".sortBy").attr('name','dzhuce'); - $(".sortBy").attr('value',2); - $("#search").click(); - }else{ - $(".sortBy").attr('name','dzhuce'); - $(".sortBy").attr('value',1); - $("#search").click(); - } - } - if($ddd=='wzhuce'){ - if($wzhuce==1){ - $(".sortBy").attr('name','wzhuce'); - $(".sortBy").attr('value',2); - $("#search").click(); - }else{ - $(".sortBy").attr('name','wzhuce'); - $(".sortBy").attr('value',1); - $("#search").click(); - } - } - if($ddd=='mzhuce'){ - if($mzhuce==1){ - $(".sortBy").attr('name','mzhuce'); - $(".sortBy").attr('value',2); - $("#search").click(); - }else{ - $(".sortBy").attr('name','mzhuce'); - $(".sortBy").attr('value',1); - $("#search").click(); - } + var that=$(this); + $data_order=that.attr('data-order'); + $order_type='{$userarpu_order}'; + if($order_type==''||$order_type=='4'){ + $(".sortBy").attr('name','data_order'); + val='3,'+$data_order; + $(".sortBy").attr('value',val); + $("#search").click(); + }else if($order_type=='3'){ + $(".sortBy").attr('name','data_order'); + val='4,'+$data_order; + $(".sortBy").attr('value',val); + $("#search").click(); } - }) + }); + // $(".paixu").click(function(){ + // $ddd=$(this).attr('date-url'); + // $lzhuce="{:I('lzhuce')}"; + // $phb = "{:I('phb')}"; + // $dzhuce = "{:I('dzhuce')}"; + // $wzhuce = "{:I('wzhuce')}"; + // $mzhuce = "{:I('mzhuce')}"; + // // $sss="{:I('group')}"; + // if($ddd=='lzhuce'){ + // if($lzhuce==1){ + // $(".sortBy").attr('name','lzhuce'); + // $(".sortBy").attr('value',2); + // $("#search").click(); + // }else{ + // $(".sortBy").attr('name','lzhuce'); + // $(".sortBy").attr('value',1); + // $("#search").click(); + // } + // } + // if($ddd=='phb'){ + // if($phb==1){ + // $(".sortBy").attr('name','phb'); + // $(".sortBy").attr('value',2); + // $("#search").click(); + // }else{ + // $(".sortBy").attr('name','phb'); + // $(".sortBy").attr('value',1); + // $("#search").click(); + // } + // } + // if($ddd=='dzhuce'){ + // if($dzhuce==1){ + // $(".sortBy").attr('name','dzhuce'); + // $(".sortBy").attr('value',2); + // $("#search").click(); + // }else{ + // $(".sortBy").attr('name','dzhuce'); + // $(".sortBy").attr('value',1); + // $("#search").click(); + // } + // } + // if($ddd=='wzhuce'){ + // if($wzhuce==1){ + // $(".sortBy").attr('name','wzhuce'); + // $(".sortBy").attr('value',2); + // $("#search").click(); + // }else{ + // $(".sortBy").attr('name','wzhuce'); + // $(".sortBy").attr('value',1); + // $("#search").click(); + // } + // } + // if($ddd=='mzhuce'){ + // if($mzhuce==1){ + // $(".sortBy").attr('name','mzhuce'); + // $(".sortBy").attr('value',2); + // $("#search").click(); + // }else{ + // $(".sortBy").attr('name','mzhuce'); + // $(".sortBy").attr('value',1); + // $("#search").click(); + // } + // } + // }) //点击排序 $('.list_sort').click(function(){ var url = $(this).attr('url');
排行榜 今日充值 本周充值 本月充值
推广员账号累计充值▲ + 累计充值▼ + 累计充值 + 排行榜▲ + 排行榜▼ + 排行榜 + + 今日充值▲ + 今日充值▼ + 今日充值 + + 本周充值▲ + 本周充值▼ + 本周充值 + + + 本月充值▲ + 本月充值▼ + 本月充值 +
{$data['promote_account']} {$data.count}{$data.rand}{$data.rand}{$data.rand}{$data.rand} {$data.today} {$data.week} {$data.mounth}
汇总 {$total.sum_count}--- {$total.sum_today} {$total.sum_week} {$total.sum_mounth}