diff --git a/Application/Admin/Controller/PlatformController.class.php b/Application/Admin/Controller/PlatformController.class.php index 66fddd9cb..599f86fee 100644 --- a/Application/Admin/Controller/PlatformController.class.php +++ b/Application/Admin/Controller/PlatformController.class.php @@ -11,6 +11,110 @@ use Org\UcenterSDK\Ucservice; */ class PlatformController extends ThinkController { + //游戏汇总 + public function game_pool(){ + if(!array_key_exists("year",$_REQUEST)){ + $this->redirect(ACTION_NAME, array('year' => date('Y',time())) ); + } + $isExport = false; + if(isset($_REQUEST['export']) && $_REQUEST['export'] == 1){ + $isExport = true; + } + $page = intval($_REQUEST['p']); + $page = $page ? $page : 1; //默认显示第一页数据 + if (isset($_REQUEST['row'])) { + $row = $_REQUEST['row']; + } else { + $row = 10; + } + $year = isset($_REQUEST['year']) ? $_REQUEST['year'] : date("Y",time()); + $yearMap = [strtotime("$year-1-1 00:00:00"),strtotime("$year-12-31 23:59:59")]; + + $gameMap = "1"; + if(isset($_REQUEST['relation_game_id'])){ + $gameId = $_REQUEST['relation_game_id']; + $gameMap .= " AND relation_game_id = '{$gameId}' "; + } + + $gameDb = M("Game","tab_"); + $data = $gameDb + ->field("group_concat(id) game_id,relation_game_id,relation_game_name") + ->where($gameMap) + ->group("relation_game_id"); + if($isExport){ + $data = $data->select(); + //生成头 + $fp = $this->setPromotePoolTitle($year,"game"); + }else{ + $data = $data->page($page,$row)->select(); + $countTable = $gameDb->where($gameMap)->group("relation_game_id")->select(false); + $count = M()->table("(".$countTable.") s")->count(); + } + + //获取游戏累计注册 + $sendData = []; + foreach($data as $k=>$v){ + + $list = self::setYearList($year); + $this->getGameRegisterCount($list,$v['game_id'],$yearMap); + $this->getGamePayamountCount($list,$v['game_id'],$yearMap); + $v["list"] = $list; + $sendData[] = $v; + if($isExport){ + unset($v['game_id'],$v['relation_game_id']); + $fp = $this->setCsvData($fp,$v); + } + } + if($isExport){ + //刷新输出缓冲到浏览器 + fclose($fp); + exit(); + } + + $th = array_keys(self::setYearList($year)); + $this->assign('th', $th); + $this->assign('list_data', $sendData); + $this->assign("companyList",D("PromoteCompany")->getList()); + $this->getYearList(); + + $page = set_pagination($count, $row); + if ($page) { + $this->assign('_page', $page); + } + $this->display(); + + } + + //获取游戏注册量 + protected function getGameRegisterCount(&$list,$gameids,$yearMap) + { + $map = [ + "fgame_id"=>["in",$gameids], + "register_time"=>["between",$yearMap] + ]; + $Register = M("User","tab_")->field("count(id) count,FROM_UNIXTIME(`register_time`, '%Y-%m') regtime")->where($map)->group("regtime")->select(); + if(empty($Register)) return ; + foreach ($Register as $v) { + $list[$v['regtime']]['register'] = $v['count']; + } + } + //获取游戏注册量 + protected function getGamePayamountCount(&$list,$gameids,$yearMap) + { + $map = [ + "game_id"=>["in",$gameids], + "pay_time"=>["between",$yearMap], + "pay_status"=>1 + ]; + $Payamount = M("Spend","tab_")->field("sum(pay_amount) pay_amount,FROM_UNIXTIME(`pay_time`, '%Y-%m') paytime")->where($map)->group("paytime")->select(); + if(empty($Payamount)) return ; + foreach ($Payamount as $v) { + $list[$v['paytime']]['payamount'] = $v['pay_amount']; + } + } + + + //推广员汇总 public function promote_pool() { if(!array_key_exists("year",$_REQUEST) || !array_key_exists("company_belong",$_REQUEST)){ @@ -152,9 +256,16 @@ class PlatformController extends ThinkController $this->assign('YearList', $list); } //获取导出头 - private static function setPromotePoolTitle($year) + private static function setPromotePoolTitle($year,$type="promote") { - $range = ["推广公司","内外团归属"]; + if($type =="promote"){ + $range = ["推广公司","内外团归属"]; + $csvFileName = '推广公司汇总.csv'; + }else{ + $range = ["游戏名称"]; + $csvFileName = '游戏汇总.csv'; + } + $i = 1; do { if($i < 10){ @@ -166,8 +277,7 @@ class PlatformController extends ThinkController $range[] = $year."年".$month."月充值流水"; $i++; } while ($i<13); - - $csvFileName = '推广公司汇总.csv'; + //设置好告诉浏览器要下载excel文件的headers header('Content-Description: File Transfer'); header('Content-Type: application/vnd.ms-excel'); diff --git a/Application/Admin/View/Platform/game_pool.html b/Application/Admin/View/Platform/game_pool.html new file mode 100644 index 000000000..3da4ca948 --- /dev/null +++ b/Application/Admin/View/Platform/game_pool.html @@ -0,0 +1,188 @@ +<extend name="Public/base"/> + +<block name="body"> + <link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" /> + <script type="text/javascript" src="__JS__/bootstrap.min.js"></script> + <script type="text/javascript" src="__JS__/select2.min.js"></script> + <style> + .select2-container--default .select2-selection--single { + color: #000; + resize: none; + border-width: 1px; + border-style: solid; + border-color: #a7b5bc #ced9df #ced9df #a7b5bc; + box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px; + height:28px;border-radius:3px;font-size:12px; + } + .select2-container--default .select2-selection--single .select2-selection__rendered { + line-height:35px; + line-height:28px; + } + .select2-container--default .select2-selection--single .select2-selection__arrow { + height:26px; + } + .select2-container--default .select2-search--dropdown .select2-search__field { + height:26px;line-height:26px;font-size:12px; + } + .select2-results__option[aria-selected] {font-size:12px;} + th{ + border-right: 1px solid #b6cad2; + } + .gotoinfo{ + color: #056dae;cursor:pointer; + } + </style> + + <div class="cf main-place top_nav_list navtab_list"> + <div class="fr"> + <a class="tabchose" href="javascript:;">游戏汇总</a> + <a class="" href="{:U('Platform/game_statistics')}">游戏注册统计</a> + <a class="" href="{:U('Platform/gamepay_statistics')}">游戏充值统计</a> + <a class="" href="{:U('Platform/resway_statistics')}">注册方式统计</a> + <a class="" href="{:U('Platform/payway_statistics')}">充值方式统计</a> + </div> + <h3 class="page_title">游戏汇总</h3> + <p class="description_text">说明:统计各游戏每月注册及充值总额(注册数:以玩家注册时玩的游戏为依据)</p> + </div> + + <div class="cf top_nav_list"> + + <!-- 高级搜索 --> + <div class="jssearch fl cf search_list"> + <div class="input-list search-title-box"> + <label>搜索:</label> + </div> + <!--游戏类型搜索END--> + <div class="input-list input-list-resway search_label_rehab"> + <select id="year" name="year" class="select_gallery" style="width:150px;"> + <volist name="YearList" id="vo"> + <option value="{$vo.value}" <if condition="I('year') && $vo.value eq I('year')">selected</if> >{$vo.name}</option> + </volist> + </select> + </div> + + <div class="input-list input-list-game search_label_rehab"> + <select id="relation_game_id" name="relation_game_id" class="select_gallery" > + <option value="">游戏名称</option> + <volist name=":getAllGame()" id="vo"> + <option value="{$vo.game_id}" <if condition="$vo.game_id eq I('relation_game_id')">selected</if> >{$vo.game_name}</option> + </volist> + </select> + </div> + + <div class="input-list"> + <a class="sch-btn" href="javascript:;" id="search" url="{:U('Platform/game_pool','model='.$model['name'].'&row='.I('row'),false)}">搜索</a> + </div> + </div> + </div> + + + <!-- 数据列表 --> + <div class="data_list"> + <div class=""> + <table> + <!-- 表头 --> + <thead> + <tr> + <th rowspan="2">游戏名称</th> + <foreach name="th" item="vo"> + <th colspan="2">{$vo}</th> + </foreach> + </tr> + <tr> + <foreach name="th" item="vo"> + <th>注册数</th> + <th>充值流水</th> + </foreach> + </tr> + </thead> + <!-- 列表 --> + <tbody> + <style> + .data-table thead th, .data-table tbody td{text-align:center} + .data-table tbody td{border-right:1px solid #DDDDDD;} + .d_list .drop-down ul {z-index:999;} + </style> + <empty name="list_data" > + <tr> + <td colspan="9" class="text-center">aOh! 暂时还没有内容!</td> + </tr> + <else /> + <volist name="list_data" id="data"> + <tr> + <td>{$data['relation_game_name']}</td> + + <foreach name="data.list" item="item" key="date"> + <foreach name="item" item="it" key="type"> + <td <if condition="$it GT 0">class="gotoinfo"</if> data-id="{$data.relation_game_id}" data-type="{$type}" data-date="{$date}">{$it}</td> + </foreach> + + </foreach> + + </tr> + </volist> + </empty> + </tbody> + </table> + </div> + </div> + <div class="page"> + <a class="sch-btn" href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" target="_blank">导出</a> + {$_page|default=''} + </div> +</block> + +<block name="script"> + <script src="__STATIC__/layer/layer.js" type="text/javascript"></script> + <script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script> + <script> + <volist name=":I('get.')" id="vo"> + Think.setValue('{$key}',"{$vo}"); + </volist> + $(".select_gallery").select2(); + </script> + <script type="text/javascript"> + //导航高亮 + highlight_subnav("{:U('Platform/promote_statistics')}"); + + var registerUrl = "{:U('Platform/promote_statistics')}"; + var payamountrUrl = "{:U('Platform/promotepay_statistics')}"; + + $(function(){ + //搜索功能 + $("#search").click(function(){ + var url = $(this).attr('url'); + var query = $('.jssearch').find('input').serialize(); + query += "&" + $('.jssearch').find('select').serialize(); + query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,''); + query = query.replace(/^&/g,''); + if( url.indexOf('?')>0 ){ + url += '&' + query; + }else{ + url += '?' + query; + } + window.location.href = url; + }); + + //回车自动提交 + $('.jssearch').find('input').keyup(function(event){ + if(event.keyCode===13){ + $("#search").click(); + } + }); + $(".gotoinfo").on("click",function(){ + var data = $(this).data(); + var date = data.date.split('-'); + var timestart =data.date+'-' + new Date(date[0],date[1],1).getDate(); + var timeend = data.date+'-' +new Date(date[0],date[1],0).getDate(); + + var str = "×tart="+timestart+"&timeend="+timeend+"&company_id="+data.id; + if(data.type == "register"){ + window.location.href = registerUrl+str; + }else{ + window.location.href = payamountrUrl+str; + } + }) + }) + </script> +</block> \ No newline at end of file diff --git a/Application/Admin/View/Platform/game_statistics.html b/Application/Admin/View/Platform/game_statistics.html index b5707b940..63e0c59a5 100644 --- a/Application/Admin/View/Platform/game_statistics.html +++ b/Application/Admin/View/Platform/game_statistics.html @@ -30,6 +30,7 @@ <div class="cf main-place top_nav_list navtab_list"> <div class="fr"> + <a class="" href="{:U('Platform/game_pool')}">游戏汇总</a> <a class="tabchose" href="javascript:;">游戏注册统计</a> <a class="" href="{:U('Platform/gamepay_statistics')}">游戏充值统计</a> <a class="" href="{:U('Platform/resway_statistics')}">注册方式统计</a> diff --git a/Application/Admin/View/Platform/gamepay_statistics.html b/Application/Admin/View/Platform/gamepay_statistics.html index 3b0661b3c..39cec1254 100644 --- a/Application/Admin/View/Platform/gamepay_statistics.html +++ b/Application/Admin/View/Platform/gamepay_statistics.html @@ -29,6 +29,7 @@ <div class="cf main-place top_nav_list navtab_list"> <div class="fr"> + <a class="" href="{:U('Platform/game_pool')}">游戏汇总</a> <a class="" href="{:U('Platform/game_statistics')}">游戏注册统计</a> <a class="tabchose" href="">游戏充值统计</a> <a class="" href="{:U('Platform/resway_statistics')}">注册方式统计</a> diff --git a/Application/Admin/View/Platform/payway_statistics.html b/Application/Admin/View/Platform/payway_statistics.html index ddf7c2c6e..d05f0797c 100644 --- a/Application/Admin/View/Platform/payway_statistics.html +++ b/Application/Admin/View/Platform/payway_statistics.html @@ -29,6 +29,7 @@ <div class="cf main-place top_nav_list navtab_list"> <div class="fr"> + <a class="" href="{:U('Platform/game_pool')}">游戏汇总</a> <a class="" href="{:U('Platform/game_statistics')}">游戏注册统计</a> <a class="" href="{:U('Platform/gamepay_statistics')}">游戏充值统计</a> <a class="" href="{:U('Platform/resway_statistics')}">注册方式统计</a> diff --git a/Application/Admin/View/Platform/resway_statistics.html b/Application/Admin/View/Platform/resway_statistics.html index 0583b3e4e..30979349e 100644 --- a/Application/Admin/View/Platform/resway_statistics.html +++ b/Application/Admin/View/Platform/resway_statistics.html @@ -30,6 +30,7 @@ <div class="cf main-place top_nav_list navtab_list"> <div class="fr"> + <a class="" href="{:U('Platform/game_pool')}">游戏汇总</a> <a class="" href="{:U('Platform/game_statistics')}">游戏注册统计</a> <a class="" href="{:U('Platform/gamepay_statistics')}">游戏充值统计</a> <a class="tabchose" href="javascript:;">注册方式统计</a>