From 00f33befa2f693aa920c9d4403e59f6f58eaa8c1 Mon Sep 17 00:00:00 2001 From: zhengyongxing Date: Fri, 20 Dec 2019 18:22:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=B8=81=E6=94=B6=E5=9B=9E?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/PayChannelController.class.php | 1305 +++++++++++++++++ .../Admin/View/PayChannel/gameDetail.html | 321 ++++ Application/Admin/View/PayChannel/index.html | 381 +++++ .../Admin/View/PayChannel/testDetail.html | 355 +++++ 4 files changed, 2362 insertions(+) create mode 100644 Application/Admin/Controller/PayChannelController.class.php create mode 100644 Application/Admin/View/PayChannel/gameDetail.html create mode 100644 Application/Admin/View/PayChannel/index.html create mode 100644 Application/Admin/View/PayChannel/testDetail.html diff --git a/Application/Admin/Controller/PayChannelController.class.php b/Application/Admin/Controller/PayChannelController.class.php new file mode 100644 index 000000000..65265c9ec --- /dev/null +++ b/Application/Admin/Controller/PayChannelController.class.php @@ -0,0 +1,1305 @@ +field("game_name,sum(pay_amount) as pay_amount,game_id") + ->where($map) + ->group('game_id') + ->order('pay_amount desc') + ->select(); + + //平台币充值金额计算 + $coinMap['pay_source'] = 2; + $coinMap['extend'] = array('eq',''); + $coinData = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->field("tab_pay_info.game_name,0 as pay_amount,sum(tab_deposit.pay_amount) as platform_coin,0 as test_coin,tab_pay_info.game_id") + ->where($coinMap) + ->group("game_id") + ->select(); + + $data = array_merge($data,$coinData); + $data = $this->unique_multi_array($data,'game_id'); + + //将平台币导入游戏数据中 + $handleCoinData = []; + foreach($coinData as $key => $value) { + $handleCoinData[$value['game_id']] = $value['platform_coin']; + } + + //测试数据汇总计算 + $testData = M('spend','tab_') + ->field("sum(pay_amount) as test_coin,game_name,game_id") + ->join("inner join tab_test_white_list on tab_spend.user_id=tab_test_white_list.user_id") + ->where($map) + ->group('game_id') + ->select(); + + //测试平台币充值金额计算 + $testCoinData = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->join("inner join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id") + ->field("sum(tab_deposit.pay_amount) as test_coin,tab_pay_info.game_name,tab_pay_info.game_id") + ->where($coinMap) + ->group("game_id") + ->select(); +// var_dump($testCoinData);die(); + + $handleTestData = []; + foreach($testData as $key => $value) { + $handleTestData[$value['game_id']] = $value['test_coin']; + } + + $handleTestCoinData = []; + foreach($testCoinData as $key => $value) { + $handleTestCoinData[$value['game_id']] = $value['test_coin']; + } + + foreach ($data as $key => $value) { + $data[$key]['platform_coin'] = $handleCoinData[$value['game_id']]?$handleCoinData[$value['game_id']]:0; + $data[$key]['test_coin'] = $handleTestData[$value['game_id']]?$handleTestData[$value['game_id']]:0; + $data[$key]['test_platform_coin'] = $handleTestCoinData[$value['game_id']]?$handleTestCoinData[$value['game_id']]:0; + + } + + //超级签数据 + $superSignData = M('game_supersign','tab_') + ->field("0 as game_name,sum(pay_price) as pay_amount,0 as platform_coin,0 as test_coin") + ->where($map) + ->find(); + $testSuperSignCost = M('game_supersign','tab_') + ->join("inner join tab_test_white_list on tab_game_supersign.user_id=tab_test_white_list.user_id") + ->where($map) + ->sum('pay_price'); + $superSignData['test_coin'] = $testSuperSignCost?$testSuperSignCost:0; + $superSignData['sum'] = $superSignData['pay_amount']?$superSignData['pay_amount']:0; + $superSignData['pay_amount'] = $superSignData['pay_amount'] - $superSignData['test_coin']; +// var_dump($testSuperSignCost);die(); + $this->assign('superSignData',$superSignData); + //官网数据 + $offcialmap['pay_status'] = 1; + $offcialmap['pay_way'] = array('egt',1); + $offcialmap['pay_source'] = 0; + + $offcialData = M('deposit','tab_') + ->field("id as game_name,sum(pay_amount) as pay_amount,0 as platform_coin,0 as test_coin") + ->where($offcialmap) + ->find(); + + $offcialTestCost = M('deposit','tab_') + ->join("inner join tab_test_white_list on tab_deposit.user_id=tab_test_white_list.user_id") + ->where($offcialmap) + ->sum('pay_amount'); + $offcialData['test_coin'] = $offcialTestCost?$offcialTestCost:0; + + $bindMap['pay_status'] = 1; + $bindMap['pay_way'] = array('egt',1); + + $bindRechargeData = M('bind_recharge','tab_') + ->field('sum(real_amount) as pay_amount') + ->where(array($bindMap)) + ->find(); + $bindRechargeData['pay_amount'] = $bindRechargeData['pay_amount']?$bindRechargeData['pay_amount']:0; + + $offcialData['sum'] = $offcialData['pay_amount']+$bindRechargeData['pay_amount']; + $offcialData['pay_amount'] = $offcialData['pay_amount']+$bindRechargeData['pay_amount']-$offcialData['test_coin']; + + $this->assign('offcialData',$offcialData); + + $spreadMap['order_status'] = array('egt',1); + $spreadMap['pay_way'] = array('egt',1); + //推广后台 + $spreadData = M("coin_pay_order","tab_") + ->field("0 as game_name,sum(real_amount) as pay_amount,0 as platform_coin,id as test_coin") + ->where($spreadMap) + ->find(); + $spreadData['pay_amount'] = $spreadData['pay_amount']?$spreadData['pay_amount']:0; + $spreadData['sum'] = $spreadData['pay_amount']; + + $this->assign('spreadData',$spreadData); + + $channelData = $this->getPayChannel($map); + + $payTypeData['支付宝支付金额'] = 0; + $payTypeData['微信支付金额'] = 0; + $payTypeData['快捷支付金额'] = 0; + $payTypeData['其他支付金额'] = 0; + + foreach($channelData as $key => $value) { + + if ($value['pay_way']==1 || $value['pay_way']==9 ) { + $payTypeData['支付宝支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if ($value['pay_way']==2 || $value['pay_way']==3 ) { + $payTypeData['微信支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if ($value['pay_way']==15) { + $payTypeData['快捷支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if($value['pay_way']){ + $payTypeData['其他支付金额'] += number_format($value['pay_amount'],2,'.',''); + } + + } + + $this->assign('payTypeData',$payTypeData); + + foreach($channelData as $key=>$value) { + $channelData[$key]['pay_amount'] = number_format($value['pay_amount'],2,'.',''); + $channelData[$key]['pay_way'] = get_pay_way($value['pay_way']); + + if (!$value['pay_way']) { + unset($channelData[$key]); + } + } + + $count = count($data); + + $page = set_pagination($count, $row); + if ($page) { + $this->assign('_page', $page); + } + + $sumData['game'] = '汇总'; + $sumData['pay_amount'] = 0; + $sumData['platform_coin'] = 0; + $sumData['test_coin'] = 0; + $sumData['test_platform_coin'] = 0; + + foreach ($data as $key => $value) { + + $data[$key]['pay_amount'] = $value['pay_amount'] - $value['test_coin']; + $data[$key]['platform_coin'] = $value['platform_coin'] - $value['test_platform_coin']; + $data[$key]['test_coin'] = $value['test_coin'] + $value['test_platform_coin']; + $data[$key]['sum'] = $value['pay_amount'] + $value['platform_coin']; + + if($_REQUEST['export'] == 1) { + unset($data[$key]['game_id'] ); + unset($data[$key]['test_platform_coin']); + } + + //汇总计算 + $sumData['pay_amount'] += $value['pay_amount'] - $value['test_coin']; + $sumData['platform_coin'] += $handleCoinData[$value['game_id']]?$handleCoinData[$value['game_id']]:0; + $sumData['test_coin'] += $handleTestData[$value['game_id']]?$handleTestData[$value['game_id']]:0; + $sumData['test_platform_coin'] +=$handleTestCoinData[$value['game_id']]?$handleTestCoinData[$value['game_id']]:0; + } + + //汇总数据 + $sumData['pay_amount'] = $sumData['pay_amount'] + $superSignData['pay_amount'] + + $offcialData['pay_amount'] + $bindRechargeData['pay_amount'] + $spreadData['pay_amount']; + $sumData['platform_coin'] = $sumData['platform_coin'] - $sumData['test_platform_coin']; + $sumData['test_coin'] = $sumData['test_coin']+$offcialTestCost+$testSuperSignCost+$sumData['test_platform_coin']; + $sumData['sum'] = $sumData['pay_amount'] +$sumData['test_coin'] + $sumData['platform_coin']; + + if($_REQUEST['export'] == 1) { + + $title = array('产品名称','游戏现金金额','平台币直冲金额','测试金额','支付渠道内合计'); + + $superSignData['game_name'] = '超级签'; + $offcialData['game_name'] = '官网'; + $spreadData['game_name'] = '推广后台'; + + $superSignData['platform_coin'] = '0'; + $offcialData['platform_coin'] = '0'; + $spreadData['platform_coin'] = '0'; + $spreadData['test_coin'] = '0'; + + //充值方式统计 + $payTypeDataExport['game_name'] = '充值方式统计'; + foreach($payTypeData as $key => $value) { + if ($value) { + $payTypeDataExport['pay_amount'] .= $key.':'.$value." "; + } + } + + $channelDataExport['game_name'] = '支付渠道'; + foreach($channelData as $key => $value) { + if ($value) { + $channelDataExport['pay_amount'] .= $value['pay_way'].':'.$value['pay_amount']." "; + } + } + + unset($sumData['test_platform_coin']); + + db2csv(array_merge(array_merge(array_merge(array_merge( + array_merge(array_merge( + array_merge($data,[0=>$superSignData]),[0=>$offcialData])),[0=>$spreadData],[0=>$sumData])),[0=>$payTypeDataExport]),[0=>$channelDataExport]),'支付渠道统计导出',$title); + } + + + $size = $row;//每页显示的记录数 + $data = array_slice($data, ($arraypage - 1) * $size, $size); + + $this->assign('sumData',$sumData); + $this->assign('channelData',$channelData); + $this->assign('listdata',$data); + + $this->display(); + + } + + protected function unique_multi_array($array, $key) + + { + + $temp_array = []; + + $i = 0; + + $key_array = []; + + foreach ($array as $val) { + + if (!in_array($val[$key], $key_array)) { + + $key_array[$i] = $val[$key]; + + $temp_array[$i] = $val; + + } + + $i++; + + } + + return $temp_array; + + } + + public function getPayChannel($map) { + //支付 + //游戏订单渠道 + $channelData = M('spend','tab_') + ->field('sum(pay_amount) as pay_amount,pay_way') + ->where($map) + ->group('pay_way') + ->select(false); + + //超级签数据 + $superSignDataPay = M('game_supersign','tab_') + ->field("sum(pay_price) as pay_amount,pay_way") + ->where($map) + ->group('pay_way') + ->select(false); + + //推广后台充值数据 + $spreadMap['order_status'] = array('egt',1); + $spreadMap['pay_way'] = array('egt',1); + $spreadMap['create_time'] = $map['pay_time']; + //推广后台 + $spreadDataPay = M("coin_pay_order","tab_") + ->field("sum(pay_amount) as pay_amount,pay_way") + ->where($spreadMap) + ->select(false); + + $map['create_time'] = $map['pay_time']; + unset($map['pay_time']); + //充值平台币数据 + $depositData = M('deposit','tab_') + ->field('sum(pay_amount) as pay_amount,pay_way') + ->where($map) + ->group('pay_way') + ->select(false); + + $bindRechargeData = M('bind_recharge','tab_') + ->field('sum(real_amount) as pay_amount,pay_way') + ->where(array('pay_status'=>1,'pay_way'=>array('egt',1),'game_id'=>$_REQUEST['game_id'],'create_time'=>$map['pay_time'])) + ->select(false); + + +// var_dump($spreadDataPay);die(); + + //将语句整合起来查询 + $channelData = "select sum(pay_amount) as pay_amount,pay_way from ({$channelData} UNION ALL {$depositData} UNION ALL {$superSignDataPay} UNION ALL {$spreadDataPay} UNION ALL {$bindRechargeData})t group by pay_way;"; +// var_dump($channelData);die(); + $channelData = M()->query($channelData); + + return $channelData; + } + + public function gameDetail($p=1) { + + if (isset($_REQUEST['row'])) { + $row = $_REQUEST['row']; + } else { + $row = 10; + } + $map = []; + $coinMap = []; + + $model = 'spend'; + + if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + $coinMap['tab_pay_info.create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + $spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + $offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + $coinMap['tab_pay_info.create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + $spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + $offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + $coinMap['tab_pay_info.create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + $spreadMap['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + $offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } + + if (!empty($_REQUEST['pay_order_number'])) { + $map['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + $coinMap['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + $spreadMap['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + $offcialmap['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + } + + if (!empty($_REQUEST['user_account'])) { + $map['user_account'] = array('like',"{$_REQUEST['user_account']}%"); + $coinMap['tab_deposit.user_account'] = array('like',"{$_REQUEST['user_account']}%"); + } + $coinMap['tab_deposit.pay_way'] =$spreadMap['pay_way']=$map['pay_way'] = array('egt',1); + $offcialmap['pay_way'] = array('egt',1); + if (!empty($_REQUEST['pay_way']) || $_REQUEST['pay_way']=='0') { + $map['pay_way'] = $_REQUEST['pay_way']; + $coinMap['tab_deposit.pay_way'] = $_REQUEST['pay_way']; + $spreadMap['pay_way'] = $_REQUEST['pay_way']; + $offcialmap['pay_way'] = $_REQUEST['pay_way']; + } + $_REQUEST['game_id']?$map['game_id'] = $_REQUEST['game_id']:false; + $_REQUEST['game_id']?$coinMap['game_id'] = $_REQUEST['game_id']:false; + + + $map['pay_status'] = 1; + + $_REQUEST['model']?$model= $_REQUEST['model']:false; + + $page = $p ? $p : 1; //默认显示第一页数据 + + $spendData = M('spend','tab_') + ->field("pay_order_number,pay_time,user_account,game_name,promote_account,spend_ip,server_name,game_player_name,cost,pay_amount,pay_way") + ->where($map) + ->select(false); +// var_dump($spendData);die(); + $coinMap['pay_status'] = 1; + $coinData = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->field("pay_order_number,tab_deposit.create_time as pay_time,tab_deposit.user_account,tab_pay_info.game_name,tab_deposit.promote_account, + tab_deposit.pay_ip as spend_ip,tab_pay_info.server_name,tab_pay_info.game_player_name, + tab_deposit.pay_amount as cost,tab_deposit.pay_amount,tab_deposit.pay_way") + ->where($coinMap) + ->select(false); + + $spreadMap['order_status'] = array('egt',1); +// $spreadMap['pay_way'] = array('egt',1); + $coin_pay_order = M('coin_pay_order','tab_') + ->field("pay_order_number,create_time as pay_time,promote_account,pay_amount as cost,real_amount as pay_amount,pay_way") + ->where($spreadMap) + ->select(false); + + //官网数据 + $offcialmap['pay_status'] = 1; + $offcialmap['pay_source'] = 0; + + $offcialData = M('deposit','tab_') + ->field("pay_order_number,create_time as pay_time,user_account,promote_account,pay_ip as spend_ip,pay_amount as cost,pay_amount,pay_way") + ->where($offcialmap) + ->select(false); + + if ($map['user_account']) { + $map['account'] = $map['user_account']; + unset($map['user_account']); + } + if ($map['pay_order_number']){ + $map['order_id'] = $map['pay_order_number']; + unset($map['pay_order_number']); + } + + //超级签数据 + $superSignData = M('game_supersign','tab_') + ->field("order_id as pay_order_number,pay_time,tab_user.account as user_account,tab_user.promote_account,pay_price as cost,pay_price as pay_amount,pay_way") + ->join('inner join tab_user on tab_user.id=tab_game_supersign.user_id') + ->where($map) + ->select(false); + + if ($model == 'spend') { + $unionSql = "{$spendData} UNION ALL {$coinData}"; + } elseif($model == 'coin_pay_order') { + $unionSql = "{$coin_pay_order}"; + } elseif($model == 'deposit') { + $unionSql = "{$offcialData}"; + } elseif($model == 'game_supersign') { + $unionSql = "{$superSignData}"; + } + + $page = ($page-1) * $row; + $sql = "select * from ({$unionSql})t order by pay_time DESC limit {$page},{$row};"; + + $data = M()->query($sql); + + foreach ($data as $key => $value) { + $data[$key]['pay_time'] = date('Y-m-d H:i:s',$value['pay_time']); + } + + $sql = "select count(1) as count from ({$unionSql})t;"; + $count = M()->query($sql); + $count = $count[0]['count']; + + $page = set_pagination($count, $row); + if ($page) { + $this->assign('_page', $page); + } + + //总计金额逻辑 + if ($model == 'spend') { + $unionSql = "{$spendData}"; + } elseif($model == 'coin_pay_order') { + $unionSql = "{$coin_pay_order}"; + } elseif($model == 'deposit') { + $unionSql = "{$offcialData}"; + } elseif($model == 'game_supersign') { + $unionSql = "{$superSignData}"; + } + + $sql = "select sum(pay_amount) as pay_amount,pay_way from ({$unionSql})t group by pay_way;"; + $sumData = M()->query($sql); + + $sumAllData['pay_amount'] = 0; + $sumAllData['platform_amount'] = 0; + + if ($model == 'spend') { + $sumAllData['platform_amount'] = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->where($coinMap) + ->sum('tab_deposit.pay_amount'); + } + + $sumAllData['platform_amount'] = $sumAllData['platform_amount']?$sumAllData['platform_amount']:0; + + foreach ($sumData as $key => $value) { + if ($value['pay_way']>=1) { + $sumAllData['pay_amount'] += $value['pay_amount']; + } + } + + $sumAllData['sum'] = $sumAllData['bind_amount']+$sumAllData['platform_amount']+$sumAllData['pay_amount']; +// var_dump($sumAllData);die(); + $this->assign('sumAllData',$sumAllData); + $this->assign('data',$data); + $this->display(); + } + + public function export_gameDatail() { + + $xlsName = $_REQUEST['xlsname']; + + $map = []; + $coinMap = []; + + $model = 'spend'; + + if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + $coinMap['tab_pay_info.create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + $spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + $offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + $coinMap['tab_pay_info.create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + $spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + $offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + $coinMap['tab_pay_info.create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + $spreadMap['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + $offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } + + if (!empty($_REQUEST['pay_order_number'])) { + $map['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + $coinMap['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + $spreadMap['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + $offcialmap['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + } + + if (!empty($_REQUEST['user_account'])) { + $map['user_account'] = array('like',"{$_REQUEST['user_account']}%"); + $coinMap['tab_deposit.user_account'] = array('like',"{$_REQUEST['user_account']}%"); + } + $coinMap['tab_deposit.pay_way'] =$spreadMap['pay_way']=$map['pay_way'] = array('egt',1); + $offcialmap['pay_way'] = array('egt',1); + if (!empty($_REQUEST['pay_way']) || $_REQUEST['pay_way']=='0') { + $map['pay_way'] = $_REQUEST['pay_way']; + $coinMap['tab_deposit.pay_way'] = $_REQUEST['pay_way']; + $spreadMap['pay_way'] = $_REQUEST['pay_way']; + $offcialmap['pay_way'] = $_REQUEST['pay_way']; + } + $_REQUEST['game_id']?$map['game_id'] = $_REQUEST['game_id']:false; + $_REQUEST['game_id']?$coinMap['game_id'] = $_REQUEST['game_id']:false; + + + $map['pay_status'] = 1; + +// $_REQUEST['model']?$model= $_REQUEST['model']:false; + if ($_REQUEST['model']) { + $model= $_REQUEST['model']; + } + + $spendData = M('spend','tab_') + ->field("pay_order_number,pay_time,user_account,game_name,promote_account,spend_ip,server_name,game_player_name,cost,pay_amount,pay_way") + ->where($map) + ->select(false); +// var_dump($spendData);die(); + $coinMap['pay_status'] = 1; + $coinData = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->field("pay_order_number,tab_deposit.create_time as pay_time,tab_deposit.user_account,tab_pay_info.game_name,tab_deposit.promote_account, + tab_deposit.pay_ip as spend_ip,tab_pay_info.server_name,tab_pay_info.game_player_name, + tab_deposit.pay_amount as cost,tab_deposit.pay_amount,tab_deposit.pay_way") + ->where($coinMap) + ->select(false); + + $spreadMap['order_status'] = array('egt',1); + + $coin_pay_order = M('coin_pay_order','tab_') + ->field("pay_order_number,create_time as pay_time,promote_account,pay_amount as cost,real_amount as pay_amount,pay_way") + ->where($spreadMap) + ->select(false); + + //官网数据 + $offcialmap['pay_status'] = 1; + $offcialmap['pay_source'] = 0; + + $offcialData = M('deposit','tab_') + ->field("pay_order_number,create_time as pay_time,user_account,promote_account,pay_ip as spend_ip,pay_amount as cost,pay_amount,pay_way") + ->where($offcialmap) + ->select(false); + + if ($map['user_account']) { + $map['account'] = $map['user_account']; + unset($map['user_account']); + } + if ($map['pay_order_number']){ + $map['order_id'] = $map['pay_order_number']; + unset($map['pay_order_number']); + } + + //超级签数据 + $superSignData = M('game_supersign','tab_') + ->field("order_id as pay_order_number,pay_time,tab_user.account as user_account,tab_user.promote_account,pay_price as cost,pay_price as pay_amount,pay_way") + ->join('inner join tab_user on tab_user.id=tab_game_supersign.user_id') + ->where($map) + ->select(false); + + if ($model == 'spend') { + + $xlsCell = array('支付订单号', '充值时间', '玩家账号', '游戏名称', '所属推广员', '充值ip', '游戏区服', '角色名称', '订单金额', '实付金额', '充值方式'); + $unionSql = "{$spendData} UNION ALL {$coinData}"; + } elseif($model == 'coin_pay_order') { + $xlsCell = array('支付订单号', '充值时间', '所属推广员', '订单金额', '实付金额', '充值方式'); + $unionSql = "{$coin_pay_order}"; + } elseif($model == 'deposit') { + $xlsCell = array('支付订单号', '充值时间', '玩家账号', '所属推广员', '充值ip', '订单金额', '实付金额', '充值方式'); + $unionSql = "{$offcialData}"; + } elseif($model == 'game_supersign') { + $xlsCell = array('支付订单号', '充值时间', '玩家账号', '所属推广员', '订单金额', '实付金额', '充值方式'); + $unionSql = "{$superSignData}"; + } + + $sql = "select count(1) as count from ({$unionSql})t;"; + $count = M()->query($sql); + $accessNum = $count[0]['count']; + + $csvFileName = $xlsName.'.csv'; + //设置好告诉浏览器要下载excel文件的headers + header('Content-Description: File Transfer'); + header('Content-Type: application/vnd.ms-excel'); + header('Content-Disposition: attachment; filename="'. $csvFileName .'"'); + header('Expires: 0'); + header('Cache-Control: must-revalidate'); + header('Pragma: public'); + $fp = fopen('php://output', 'a');//打开output流 + mb_convert_variables('GBK', 'UTF-8', $xlsCell); + fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中 + + $perSize = 50000;//每次查询的条数 + $pages = ceil($accessNum / $perSize); + for($i = 1; $i <= $pages; $i++) { + + $page = ($i-1)*$perSize; + + $sql = "select * from ({$unionSql})t order by pay_time DESC limit {$page},{$perSize};"; + + $xlsData = M()->query($sql); + + foreach ($xlsData as $k => $v) { + $v['pay_time'] = date('Y-m-d H:i:s',$v['pay_time']); + $v['pay_way'] = get_pay_way($v['pay_way']); + + $xlsData[] = $v; + + mb_convert_variables('GBK', 'UTF-8', $v); + fputcsv($fp, $v); + } + + unset($xlsData);//释放变量的内存 + //刷新输出缓冲到浏览器 + ob_flush(); + flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 + } + + //总计金额逻辑 + if ($model == 'spend') { + $unionSql = "{$spendData}"; + } elseif($model == 'coin_pay_order') { + $unionSql = "{$coin_pay_order}"; + } elseif($model == 'deposit') { + $unionSql = "{$offcialData}"; + } elseif($model == 'game_supersign') { + $unionSql = "{$superSignData}"; + } + + $sql = "select sum(pay_amount) as pay_amount,pay_way from ({$unionSql})t group by pay_way;"; + $sumData = M()->query($sql); + + $sumAllData['pay_amount'] = 0; + $sumAllData['platform_amount'] = 0; + + if ($model == 'spend') { + $sumAllData['platform_amount'] = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->where($coinMap) + ->sum('tab_deposit.pay_amount'); + } + + $sumAllData['platform_amount'] = $sumAllData['platform_amount']?$sumAllData['platform_amount']:0; + + foreach ($sumData as $key => $value) { + if ($value['pay_way']>=1) { + $sumAllData['pay_amount'] += $value['pay_amount']; + } + } + + $sumAllData['sum'] = $sumAllData['bind_amount']+$sumAllData['platform_amount']+$sumAllData['pay_amount']; + + $sumDatas['pay_order_number'] = "总计"; + + $sumDatas['pay_time'] = "累计充值:{$sumAllData['sum']} 现金:{$sumAllData['pay_amount']} 平台币:{$sumAllData['platform_amount']}"; + mb_convert_variables('GBK', 'UTF-8',$sumDatas); + fputcsv($fp, $sumDatas); + + exit(); + + } + + public function testDetail($p=1) { + + $page = intval($p); + $page = $page ? $page : 1; //默认显示第一页数据 + + if (isset($_REQUEST['row'])) { + $row = $_REQUEST['row']; + } else { + $row = 10; + } + + $map = []; + + if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + } elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + } + + if (!empty($_REQUEST['pay_order_number'])) { + $map['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + } + + if (!empty($_REQUEST['order_number'])) { + $map['order_number'] = array('like',"{$_REQUEST['order_number']}%"); + } + + if (!empty($_REQUEST['user_account'])) { + $map['user_account'] = array('like',"{$_REQUEST['user_account']}%"); + } + + $model = $_REQUEST['model']?$_REQUEST['model']:'spend'; + + $data = []; + + if ($model == 'spend') { + + if ($_REQUEST['game_id']) { + $map['game_id'] = $_REQUEST['game_id']; + } + + $data = M('spend','tab_') + ->field("pay_order_number,order_number,user_account,pay_time,game_name,server_name,game_player_name,cost,pay_amount,pay_way as pay_type,pay_way,pay_game_status") + ->join('inner join tab_test_white_list on tab_spend.user_id=tab_test_white_list.user_id') + ->where($map) +// ->order('tab_spend.id DESC') + ->select(false); + + if ($map['user_account']) { + $map['tab_deposit.user_account'] = $map['user_account']; + } + + $coinData = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->join("inner join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id") + ->field("pay_order_number,tab_deposit.order_number,tab_deposit.user_account,tab_deposit.create_time as pay_time, + tab_pay_info.game_name,tab_pay_info.server_name,tab_pay_info.game_player_name,tab_deposit.pay_amount as cost, + tab_deposit.pay_amount,tab_deposit.pay_way as pay_type,tab_deposit.pay_way,'' as pay_game_status") + ->where($map) + ->select(false); + $page = ($page-1) * $row; + $count = "select count(*) as count from ({$data} UNION ALL {$coinData})t;"; + + $data = "select * from ({$data} UNION ALL {$coinData})t limit {$page},{$row};"; + + $data = M()->query($data); + + + $count = M()->query($count); + $count = $count[0]['count']; + + foreach ($data as $key => $value) { + + if(!$value['order_number']) { + $data[$key]['order_number'] = '无'; + } + + $data[$key]['pay_time'] = Date('Y-m-d H:i:s',$value['pay_time']); + + $data[$key]['pay_type'] = get_pay_way($value['pay_type']); + + if ($value['pay_way']==1 || $value['pay_way']==9 ) { + $data[$key]['pay_way'] = '支付宝'; + } else if ($value['pay_way']==2 || $value['pay_way']==3 ) { + $data[$key]['pay_way'] = '微信支付'; + } else if ($value['pay_way']==15) { + $data[$key]['pay_way'] = '快捷支付'; + } else if($value['pay_way']){ + $data[$key]['pay_way'] = '其他支付'; + } + + if ($value['pay_game_status'] == '0') { + $data[$key]['pay_game_status'] = '失败'; + } else if ($value['pay_game_status'] == 1) { + $data[$key]['pay_game_status'] = '成功'; + } else if ($value['pay_game_status'] == 2) { + $data[$key]['pay_game_status'] = '已退款'; + } else if (!$value['pay_game_status']) { + $data[$key]['pay_game_status'] = '无'; + } + + } + + $field = "sum(cost) as cost,sum(pay_amount) as pay_amount,pay_way"; + + $coinDataSum = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->join("inner join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id") + ->field("sum(tab_deposit.pay_amount) as cost,sum(tab_deposit.pay_amount) as pay_amount,tab_deposit.pay_way") + ->where($map) + ->find(); + + $coinDataSumSql = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->join("inner join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id") + ->field("sum(tab_deposit.pay_amount) as cost,sum(tab_deposit.pay_amount) as pay_amount,tab_deposit.pay_way") + ->where($map) + ->group('pay_way') + ->select(false); + + } elseif($model == 'game_supersign') { + if ($map['pay_order_number']) { + $map['order_id'] = $map['pay_order_number']; + unset($map['pay_order_number']); + } + + if ($map['user_account']) { + $map['account'] = $map['user_account']; + unset($map['user_account']); + } + + if ($_REQUEST['game_id']) { + $map['game_id'] = $_REQUEST['game_id']; + } + + $data = M('game_supersign','tab_') + ->field("order_id as pay_order_number,trade_id as order_number,account as user_account,pay_time,game_name,pay_price as cost,pay_price as pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_game_supersign.user_id=tab_test_white_list.user_id') + ->join('left join tab_game on tab_game_supersign.game_id= tab_game.id') + ->page($page, $row) + ->where($map) + ->order('tab_game_supersign.id DESC') + ->select(); + + foreach($data as $key => $value) { + + $data[$key]['pay_time'] = Date('Y-m-d H:i:s',$value['pay_time']); + + $data[$key]['pay_type'] = get_pay_way($value['pay_type']); + + if ($value['pay_way']==1 || $value['pay_way']==9 ) { + $data[$key]['pay_way'] = '支付宝'; + } else if ($value['pay_way']==2 || $value['pay_way']==3 ) { + $data[$key]['pay_way'] = '微信支付'; + } else if ($value['pay_way']==15) { + $data[$key]['pay_way'] = '快捷支付'; + } else if($value['pay_way']){ + $data[$key]['pay_way'] = '其他支付'; + } + + } + + $count = M('game_supersign','tab_') + ->field("order_id as pay_order_number,trade_id as order_number,account as user_account,pay_time,game_name,pay_price as cost,pay_price as pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_game_supersign.user_id=tab_test_white_list.user_id') + ->join('left join tab_game on tab_game_supersign.game_id= tab_game.id') + ->where($map) + ->order('tab_game_supersign.id DESC') + ->count(); + + $field = "pay_price as cost,sum(pay_price) as pay_amount,pay_way"; + } elseif($model == 'deposit') { + $map['pay_source'] = 0; + if ($map['pay_time']) { + $map['create_time'] = $map['pay_time']; + unset($map['pay_time']); + } + $data = M('deposit','tab_') + ->field("pay_order_number,order_number,user_account,create_time as pay_time,pay_amount as cost,pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_deposit.user_id=tab_test_white_list.user_id') + ->where($map) + ->page($page, $row) + ->order('tab_deposit.id DESC') + ->select(); + + foreach($data as $key => $value) { + + $data[$key]['pay_time'] = Date('Y-m-d H:i:s',$value['pay_time']); + + $data[$key]['pay_type'] = get_pay_way($value['pay_type']); + + if ($value['pay_way']==1 || $value['pay_way']==9 ) { + $data[$key]['pay_way'] = '支付宝'; + } else if ($value['pay_way']==2 || $value['pay_way']==3 ) { + $data[$key]['pay_way'] = '微信支付'; + } else if ($value['pay_way']==15) { + $data[$key]['pay_way'] = '快捷支付'; + } else if($value['pay_way']){ + $data[$key]['pay_way'] = '其他支付'; + } + + } + + $count = M('deposit','tab_') + ->field("pay_order_number,order_number,user_account,create_time as pay_time,pay_amount as cost,pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_deposit.user_id=tab_test_white_list.user_id') + ->where($map) + ->order('tab_deposit.id DESC') + ->count(); + + $field = "pay_amount as cost,sum(pay_amount) as pay_amount,pay_way"; + } + + $sumAllData = M($model,'tab_') + ->field($field) + ->join('inner join tab_test_white_list on tab_'.$model.'.user_id=tab_test_white_list.user_id') + ->where($map) + ->find(); + + $sumData = M($model,'tab_') + ->field($field) + ->join('inner join tab_test_white_list on tab_'.$model.'.user_id=tab_test_white_list.user_id') + ->where($map) + ->group('pay_way') + ->select(false); + if ($model == 'spend') { + $sumData = "{$sumData} union all {$coinDataSumSql}"; + + $sumAllData['pay_amount'] += $coinDataSum['pay_amount']; + $sumAllData['cost'] += $coinDataSum['cost']; + } + + $this->assign('sumAllData',$sumAllData); + + + $sumData = "select cost,sum(pay_amount) as pay_amount,pay_way from ({$sumData})t group by pay_way"; + + $sumData = M()->query($sumData); + + $payTypeData['支付宝支付金额'] = 0; + $payTypeData['微信支付金额'] = 0; + $payTypeData['快捷支付金额'] = 0; + $payTypeData['其他支付金额'] = 0; + + foreach($sumData as $key => $value) { + + if ($value['pay_way']==1 || $value['pay_way']==9 ) { + $payTypeData['支付宝支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if ($value['pay_way']==2 || $value['pay_way']==3 ) { + $payTypeData['微信支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if ($value['pay_way']==15) { + $payTypeData['快捷支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if($value['pay_way']){ + $payTypeData['其他支付金额'] += number_format($value['pay_amount'],2,'.',''); + } + + } + + $this->assign('payTypeData',$payTypeData); + + foreach($sumData as $key=>$value) { + $sumData[$key]['pay_amount'] = number_format($value['pay_amount'],2,'.',''); + $sumData[$key]['pay_way'] = get_pay_way($value['pay_way']); + + if (!$value['pay_way']) { + unset($sumData[$key]); + } + } + + $page = set_pagination($count, $row); + if ($page) { + $this->assign('_page', $page); + } + + $this->assign('sumData',$sumData); + + $this->assign('data',$data); + + $this->display(); + } + + public function export_testDetail() { + + $xlsName = $_REQUEST['xlsname']; + + $map = []; + + if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + } elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { + $map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + } + + if (!empty($_REQUEST['pay_order_number'])) { + $map['pay_order_number'] = array('like',"{$_REQUEST['pay_order_number']}%"); + } + + if (!empty($_REQUEST['order_number'])) { + $map['order_number'] = array('like',"{$_REQUEST['order_number']}%"); + } + + if (!empty($_REQUEST['user_account'])) { + $map['user_account'] = array('like',"{$_REQUEST['user_account']}%"); + } + + $model = $_REQUEST['model']?$_REQUEST['model']:'spend'; + + $data = []; + + $csvFileName = $xlsName.'.csv'; + //设置好告诉浏览器要下载excel文件的headers + header('Content-Description: File Transfer'); + header('Content-Type: application/vnd.ms-excel'); + header('Content-Disposition: attachment; filename="'. $csvFileName .'"'); + header('Expires: 0'); + header('Cache-Control: must-revalidate'); + header('Pragma: public'); + $fp = fopen('php://output', 'a');//打开output流 + mb_convert_variables('GBK', 'UTF-8', $xlsCell); + fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中 + $perSize = 50000;//每次查询的条数 + + if ($model == 'spend') { + + if ($_REQUEST['game_id']) { + $map['game_id'] = $_REQUEST['game_id']; + } + + $data = M('spend','tab_') + ->field("pay_order_number,order_number,user_account,pay_time,game_name,server_name,game_player_name,cost,pay_amount,pay_way as pay_type,pay_way,pay_game_status") + ->join('inner join tab_test_white_list on tab_spend.user_id=tab_test_white_list.user_id') + ->where($map) +// ->order('tab_spend.id DESC') + ->select(false); + + if ($map['user_account']) { + $map['tab_deposit.user_account'] = $map['user_account']; + } + + $coinData = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->join("inner join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id") + ->field("pay_order_number,tab_deposit.order_number,tab_deposit.user_account,tab_deposit.create_time as pay_time, + tab_pay_info.game_name,tab_pay_info.server_name,tab_pay_info.game_player_name,tab_deposit.pay_amount as cost, + tab_deposit.pay_amount,tab_deposit.pay_way as pay_type,tab_deposit.pay_way,'' as pay_game_status") + ->where($map) + ->select(false); + + $count = "select count(*) as count from ({$data} UNION ALL {$coinData})t;"; + + $count = M()->query($count); + $accessNum = $count[0]['count']; + + $pages = ceil($accessNum / $perSize); + + for($i = 1; $i <= $pages; $i++) { + + $page = ($i - 1) * $perSize; + + $data = "select * from ({$data} UNION ALL {$coinData})t limit {$page},{$perSize};"; + $data = M()->query($data); + + foreach ($data as $key => $value) { + + if (!$value['order_number']) { + $data[$key]['order_number'] = '无'; + } + + $data[$key]['pay_time'] = Date('Y-m-d H:i:s', $value['pay_time']); + + $data[$key]['pay_type'] = get_pay_way($value['pay_type']); + + if ($value['pay_way'] == 1 || $value['pay_way'] == 9) { + $value['pay_way'] = '支付宝'; + } else if ($value['pay_way'] == 2 || $value['pay_way'] == 3) { + $value['pay_way'] = '微信支付'; + } else if ($value['pay_way'] == 15) { + $value['pay_way'] = '快捷支付'; + } else if ($value['pay_way']) { + $value['pay_way'] = '其他支付'; + } + + if ($value['pay_game_status'] == '0') { + $value['pay_game_status'] = '失败'; + } else if ($value['pay_game_status'] == 1) { + $value['pay_game_status'] = '成功'; + } else if ($value['pay_game_status'] == 2) { + $value['pay_game_status'] = '已退款'; + } else if (!$value['pay_game_status']) { + $value['pay_game_status'] = '无'; + } + + mb_convert_variables('GBK', 'UTF-8', $value); + fputcsv($fp, $value); + } + + unset($xlsData);//释放变量的内存 + //刷新输出缓冲到浏览器 + ob_flush(); + flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 + } + die(); + + $field = "sum(cost) as cost,sum(pay_amount) as pay_amount,pay_way"; + + $coinDataSum = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->join("inner join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id") + ->field("sum(tab_deposit.pay_amount) as cost,sum(tab_deposit.pay_amount) as pay_amount,tab_deposit.pay_way") + ->where($map) + ->find(); + + $coinDataSumSql = M('pay_info','tab_') + ->join("inner join tab_deposit on tab_pay_info.order_id=tab_deposit.pay_order_number") + ->join("inner join tab_test_white_list on tab_test_white_list.user_id=tab_pay_info.user_id") + ->field("sum(tab_deposit.pay_amount) as cost,sum(tab_deposit.pay_amount) as pay_amount,tab_deposit.pay_way") + ->where($map) + ->group('pay_way') + ->select(false); + + } elseif($model == 'game_supersign') { + if ($map['pay_order_number']) { + $map['order_id'] = $map['pay_order_number']; + unset($map['pay_order_number']); + } + + if ($map['user_account']) { + $map['account'] = $map['user_account']; + unset($map['user_account']); + } + + if ($_REQUEST['game_id']) { + $map['game_id'] = $_REQUEST['game_id']; + } + + $accessNum = M('game_supersign','tab_') + ->field("order_id as pay_order_number,trade_id as order_number,account as user_account,pay_time,game_name,pay_price as cost,pay_price as pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_game_supersign.user_id=tab_test_white_list.user_id') + ->join('left join tab_game on tab_game_supersign.game_id= tab_game.id') + ->where($map) + ->order('tab_game_supersign.id DESC') + ->count(); + + $pages = ceil($accessNum / $perSize); + + for($i = 1; $i <= $pages; $i++) { + + $page = ($i - 1) * $perSize; + + $data = M('game_supersign', 'tab_') + ->field("order_id as pay_order_number,trade_id as order_number,account as user_account,pay_time,game_name,pay_price as cost,pay_price as pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_game_supersign.user_id=tab_test_white_list.user_id') + ->join('left join tab_game on tab_game_supersign.game_id= tab_game.id') + ->where($map) + ->limit($page ,$perSize) + ->order('tab_game_supersign.id DESC') + ->select(); + + foreach ($data as $key => $value) { + + + + mb_convert_variables('GBK', 'UTF-8', $value); + fputcsv($fp, $value); + } + + unset($xlsData);//释放变量的内存 + //刷新输出缓冲到浏览器 + ob_flush(); + flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 + + } + + + $field = "pay_price as cost,sum(pay_price) as pay_amount,pay_way"; + } elseif($model == 'deposit') { + $map['pay_source'] = 0; + if ($map['pay_time']) { + $map['create_time'] = $map['pay_time']; + unset($map['pay_time']); + } + $data = M('deposit','tab_') + ->field("pay_order_number,order_number,user_account,create_time as pay_time,pay_amount as cost,pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_deposit.user_id=tab_test_white_list.user_id') + ->where($map) + ->page($page, $row) + ->order('tab_deposit.id DESC') + ->select(); + + $count = M('deposit','tab_') + ->field("pay_order_number,order_number,user_account,create_time as pay_time,pay_amount as cost,pay_amount,pay_way as pay_type,pay_way") + ->join('inner join tab_test_white_list on tab_deposit.user_id=tab_test_white_list.user_id') + ->where($map) + ->page($page, $row) + ->order('tab_deposit.id DESC') + ->count(); + + $field = "pay_amount as cost,sum(pay_amount) as pay_amount,pay_way"; + } + + $sumAllData = M($model,'tab_') + ->field($field) + ->join('inner join tab_test_white_list on tab_'.$model.'.user_id=tab_test_white_list.user_id') + ->where($map) + ->find(); + + $sumData = M($model,'tab_') + ->field($field) + ->join('inner join tab_test_white_list on tab_'.$model.'.user_id=tab_test_white_list.user_id') + ->where($map) + ->group('pay_way') + ->select(false); + if ($model == 'spend') { + $sumData = "{$sumData} union all {$coinDataSumSql}"; + + $sumAllData['pay_amount'] += $coinDataSum['pay_amount']; + $sumAllData['cost'] += $coinDataSum['cost']; + } + + $this->assign('sumAllData',$sumAllData); + + + $sumData = "select cost,sum(pay_amount) as pay_amount,pay_way from ({$sumData})t group by pay_way"; + + $sumData = M()->query($sumData); + + $payTypeData['支付宝支付金额'] = 0; + $payTypeData['微信支付金额'] = 0; + $payTypeData['快捷支付金额'] = 0; + $payTypeData['其他支付金额'] = 0; + + foreach($sumData as $key => $value) { + + if ($value['pay_way']==1 || $value['pay_way']==9 ) { + $payTypeData['支付宝支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if ($value['pay_way']==2 || $value['pay_way']==3 ) { + $payTypeData['微信支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if ($value['pay_way']==15) { + $payTypeData['快捷支付金额'] += number_format($value['pay_amount'],2,'.',''); + } else if($value['pay_way']){ + $payTypeData['其他支付金额'] += number_format($value['pay_amount'],2,'.',''); + } + + } + + $this->assign('payTypeData',$payTypeData); + + foreach($sumData as $key=>$value) { + $sumData[$key]['pay_amount'] = number_format($value['pay_amount'],2,'.',''); + $sumData[$key]['pay_way'] = get_pay_way($value['pay_way']); + + if (!$value['pay_way']) { + unset($sumData[$key]); + } + } + + + } + +} \ No newline at end of file diff --git a/Application/Admin/View/PayChannel/gameDetail.html b/Application/Admin/View/PayChannel/gameDetail.html new file mode 100644 index 000000000..d1ff4c303 --- /dev/null +++ b/Application/Admin/View/PayChannel/gameDetail.html @@ -0,0 +1,321 @@ + + + + + + + + + + + +
+ + +
+ + +
+ 返回 +
+ + + + + +
+   +
+ +
+ +   +
+ + + + +
+ + - +
+ + +
+
+ +
+ +
+ +
+ + 搜索 + + 导出 + +
+
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
支付订单号充值时间玩家账号游戏名称所属推广员充值ip游戏区服角色名称订单金额实付金额充值方式
aOh! 暂时还没有内容!
{$data.pay_order_number}{$data.pay_time}{$data.user_account}{$data.game_name}{$data.promote_account}{$data.spend_ip}{$data.server_name}{$data.game_player_name}{$data.cost}{$data.pay_amount}{:get_pay_way($data['pay_way'])}
总计累计充值:{$sumAllData.sum}0 + (现金金额:{$sumAllData.pay_amount} 平台币:{$sumAllData.platform_amount}) +
+
+
+
+ + {$_page|default=''} +
+
+ + + + + + if(C('COLOR_STYLE')=='blue_color') echo ''; + + + + + + diff --git a/Application/Admin/View/PayChannel/index.html b/Application/Admin/View/PayChannel/index.html new file mode 100644 index 000000000..9986d6a29 --- /dev/null +++ b/Application/Admin/View/PayChannel/index.html @@ -0,0 +1,381 @@ + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+
+ + - +
+ + +
+
+ + +
+ 搜索 + 导出 +
+
+
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
产品名称平台官网,超级签,游戏等等产品
游戏现金金额第三方支付充值到游戏的金额
平台币直充金额玩家在游戏内充值到SDK(余额-平台币)内平台币的金额
测试金额测试环境白名单下测试账号所产生的测试金额。只展示充值成功通知成功的订单
支付渠道内合计超级签金额+游戏现金金额+平台币直充+测试金额
操作
{$data.game_name} + + {$data['pay_amount']}{$data['platform_coin']}{$data['test_coin']}{$data['sum']} + 订单查看 +
超级签{$superSignData['pay_amount']}00{$superSignData.test_coin}0{$superSignData['sum']}0 + 订单查看 +
官网{$offcialData['pay_amount']}0{$offcialData.test_coin}0{$offcialData['sum']}0 + 订单查看 +
推广后台{$spreadData['pay_amount']}000{$spreadData['sum']}0 + 订单查看 +
汇总{$sumData['pay_amount']}0{$sumData['platform_coin']}0{$sumData['test_coin']}{$sumData['sum']}0 + ------ +
充值方式统计 + + + {$key}:{$payTypeData}          + + +
支付渠道 + + {$channelData.pay_way}:{$channelData.pay_amount}          + +
+
+
+
+
+ {$_page|default=''} +
+ +
+ + + + + + if(C('COLOR_STYLE')=='blue_color') echo ''; + + + + + + diff --git a/Application/Admin/View/PayChannel/testDetail.html b/Application/Admin/View/PayChannel/testDetail.html new file mode 100644 index 000000000..d537cc744 --- /dev/null +++ b/Application/Admin/View/PayChannel/testDetail.html @@ -0,0 +1,355 @@ + + + + + + + + + + + +
+ + +
+ + +
+ 返回 +
+ + + + + +
+   +
+ +
+   +
+
+ +
+ +   +
+ + + + +
+ + - +
+ + +
+
+ +
+ +
+ +
+ + 搜索 + + 导出 + +
+
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
支付订单号cp订单号测试账号充值时间游戏名称游戏区服角色名称订单金额实付金额充值方式支付渠道游戏通知状态
aOh! 暂时还没有内容!
{$data.pay_order_number}{$data.order_number}{$data.user_account}{$data.pay_time}{$data.game_name}{$data.server_name}{$data.game_player_name}{$data.cost}{$data.pay_amount}{$data.pay_type}{$data.pay_way}{$data.pay_game_status}
总计------------------------------------{$sumAllData.cost}{$sumAllData.pay_amount}------------------
充值方式合计 + + + {$key}:{$payTypeData}          + + +
支付渠道 + + {$sumData.pay_way}:{$sumData.pay_amount}          + +
+
+
+
+ + {$_page|default=''} +
+
+ + + + + + if(C('COLOR_STYLE')=='blue_color') echo ''; + + + + + +