|
|
<?php
|
|
|
|
|
|
namespace Admin\Controller;
|
|
|
|
|
|
use Org\Util\Date;
|
|
|
use Sdk\Controller\AgeController;
|
|
|
use User\Api\MemberApi as MemberApi;
|
|
|
use Org\WeixinSDK\Weixin;
|
|
|
|
|
|
class PayChannelController extends ThinkController
|
|
|
{
|
|
|
public function index($p = 0) {
|
|
|
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage = $page;
|
|
|
|
|
|
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]);
|
|
|
$coinMap['tab_deposit.create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
|
|
|
$bindMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
|
|
|
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]);
|
|
|
$spreadMap['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_deposit.create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
|
|
|
$bindMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
|
|
|
$offcialmap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
|
|
|
$spreadMap['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]);
|
|
|
} elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
$map['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
|
|
|
$coinMap['tab_deposit.create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
|
|
|
$bindMap['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
|
|
|
$offcialmap['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
|
|
|
$spreadMap['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
|
|
|
}
|
|
|
|
|
|
if (!empty($_REQUEST['game_id'])) {
|
|
|
$map['game_id'] = $_REQUEST['game_id'];
|
|
|
$bindMap['game_id'] = $_REQUEST['game_id'];
|
|
|
$coinMap['game_id'] = $_REQUEST['game_id'];
|
|
|
}
|
|
|
|
|
|
$map['pay_status'] = $coinMap['pay_status'] = 1;
|
|
|
$map['pay_way'] = array('egt',1);
|
|
|
|
|
|
// setPowerPromoteIds($map,'promote_id');
|
|
|
|
|
|
//游戏币计算
|
|
|
$data = M('spend','tab_')
|
|
|
->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','');
|
|
|
// setPowerPromoteIds($coinMap,'tab_deposit.promote_id');
|
|
|
|
|
|
$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();
|
|
|
|
|
|
unset($coinMap['game_id']);
|
|
|
//平台币充值
|
|
|
$coinSum = M('deposit','tab_')
|
|
|
->where($coinMap)
|
|
|
->sum('tab_deposit.pay_amount');
|
|
|
// var_dump($coinSum);die();
|
|
|
$this->assign('coinSum',$coinSum);
|
|
|
|
|
|
$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;
|
|
|
|
|
|
}
|
|
|
$superMap = $map;
|
|
|
// unset($superMap['promote_id']);
|
|
|
//超级签数据
|
|
|
$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($superMap)
|
|
|
->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($superMap)
|
|
|
->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;
|
|
|
// setPowerPromoteIds($offcialmap,'promote_id');
|
|
|
|
|
|
$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);
|
|
|
// setPowerPromoteIds($bindMap,'promote_id');
|
|
|
|
|
|
$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);
|
|
|
// setPowerPromoteIds($spreadMap,'promote_id');
|
|
|
//推广后台
|
|
|
$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);
|
|
|
}
|
|
|
|
|
|
$this->meta_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);
|
|
|
if($map['pay_time']) {
|
|
|
$spreadMap['create_time'] = $map['pay_time'];
|
|
|
}
|
|
|
// $spreadMap['promote_id'] = $map['promote_id'];
|
|
|
//推广后台
|
|
|
$spreadDataPay = M("coin_pay_order","tab_")
|
|
|
->field("sum(pay_amount) as pay_amount,pay_way")
|
|
|
->where($spreadMap)
|
|
|
->select(false);
|
|
|
|
|
|
if ($map['pay_time']) {
|
|
|
$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);
|
|
|
|
|
|
$bindMap['pay_status'] = 1;
|
|
|
$bindMap['pay_way'] = array('egt',1);
|
|
|
if($_REQUEST['game_id']) {
|
|
|
$bindMap['game_id'] =$_REQUEST['game_id'];
|
|
|
}
|
|
|
if ($map['pay_time']) {
|
|
|
$bindMap['create_time'] = $map['pay_time'];
|
|
|
}
|
|
|
// $bindMap['promote_id'] = $map['promote_id'];
|
|
|
|
|
|
$bindRechargeData = M('bind_recharge','tab_')
|
|
|
->field('sum(real_amount) as pay_amount,pay_way')
|
|
|
->where($bindMap)
|
|
|
->select(false);
|
|
|
|
|
|
//将语句整合起来查询
|
|
|
$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_deposit.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_deposit.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_deposit.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; //默认显示第一页数据
|
|
|
|
|
|
// setPowerPromoteIds($map,'promote_id');
|
|
|
// setPowerPromoteIds($coinMap,'tab_deposit.promote_id');
|
|
|
|
|
|
$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;
|
|
|
$coinMap['pay_source'] = 2;
|
|
|
$coinMap['extend'] = '';
|
|
|
$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);
|
|
|
// setPowerPromoteIds($spreadMap,'promote_id');
|
|
|
// $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;
|
|
|
// setPowerPromoteIds($offcialmap,'promote_id');
|
|
|
|
|
|
$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']);
|
|
|
}
|
|
|
|
|
|
// unset($map['promote_id']);
|
|
|
//超级签数据
|
|
|
$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'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$this->meta_title = "游戏订单查看";
|
|
|
$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;
|
|
|
// setPowerPromoteIds($map,'promote_id');
|
|
|
// setPowerPromoteIds($coinMap,'tab_deposit.promote_id');
|
|
|
|
|
|
// $_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;
|
|
|
$coinMap['pay_source'] = 2;
|
|
|
$coinMap['extend'] = '';
|
|
|
|
|
|
$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);
|
|
|
// setPowerPromoteIds($spreadMap,'promote_id');
|
|
|
|
|
|
$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;
|
|
|
// setPowerPromoteIds($offcialmap,'promote_id');
|
|
|
|
|
|
$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']);
|
|
|
}
|
|
|
|
|
|
// unset($map['promote_id']);
|
|
|
//超级签数据
|
|
|
$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']}%");
|
|
|
}
|
|
|
$map['pay_status'] = $coinMap['tab_deposit.pay_status'] = 1;
|
|
|
$map['pay_way'] = array('egt',1);
|
|
|
$model = $_REQUEST['model']?$_REQUEST['model']:'spend';
|
|
|
|
|
|
$data = [];
|
|
|
|
|
|
if ($model == 'spend') {
|
|
|
|
|
|
if ($_REQUEST['game_id']) {
|
|
|
$map['game_id'] = $_REQUEST['game_id'];
|
|
|
}
|
|
|
// setPowerPromoteIds($map,'promote_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'];
|
|
|
}
|
|
|
|
|
|
$coinMap = $map;
|
|
|
$coinMap['tab_deposit.pay_status'] = 1;
|
|
|
$coinMap['tab_deposit.pay_way'] = $map['pay_way'];
|
|
|
|
|
|
unset($coinMap['pay_status']);
|
|
|
unset($coinMap['pay_way']);
|
|
|
|
|
|
if ($map['pay_time']) {
|
|
|
$coinMap['tab_deposit.create_time'] = $map['pay_time'];
|
|
|
unset($coinMap['pay_time']);
|
|
|
}
|
|
|
// unset($coinMap['promote_id']);
|
|
|
// setPowerPromoteIds($coinMap,'tab_deposit.promote_id');
|
|
|
|
|
|
$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($coinMap)
|
|
|
->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($coinMap)
|
|
|
->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($coinMap)
|
|
|
->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'];
|
|
|
}
|
|
|
|
|
|
$map['tab_game_supersign.pay_status'] = $map['pay_status'];
|
|
|
unset($map['pay_status']);
|
|
|
|
|
|
$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 = "sum(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']);
|
|
|
}
|
|
|
// setPowerPromoteIds($map,'tab_deposit.promote_id');
|
|
|
$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 = "sum(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->meta_title = "测试统计";
|
|
|
|
|
|
$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']}%");
|
|
|
}
|
|
|
|
|
|
$map['pay_status'] = $coinMap['tab_deposit.pay_status'] = 1;
|
|
|
$map['pay_way'] = array('egt',1);
|
|
|
$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流
|
|
|
|
|
|
$perSize = 50000;//每次查询的条数
|
|
|
|
|
|
if ($model == 'spend') {
|
|
|
|
|
|
$xlsCell = array('支付订单号', 'cp订单号', '测试账号', '充值时间', '游戏名称', '游戏区服',
|
|
|
'角色名称', '订单金额', ' 实付金额 ', '充值方式', '支付渠道', '游戏通知状态',);
|
|
|
|
|
|
mb_convert_variables('GBK', 'UTF-8', $xlsCell);
|
|
|
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
|
|
|
|
|
|
if ($_REQUEST['game_id']) {
|
|
|
$map['game_id'] = $_REQUEST['game_id'];
|
|
|
}
|
|
|
// setPowerPromoteIds($map,'promote_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'];
|
|
|
}
|
|
|
|
|
|
|
|
|
$coinMap = $map;
|
|
|
|
|
|
$coinMap['tab_deposit.pay_status'] = 1;
|
|
|
$coinMap['tab_deposit.pay_way'] = $map['pay_way'];
|
|
|
|
|
|
unset($coinMap['pay_status']);
|
|
|
unset($coinMap['pay_way']);
|
|
|
|
|
|
if($map['pay_time']) {
|
|
|
$coinMap['tab_deposit.create_time'] = $map['pay_time'];
|
|
|
unset($coinMap['pay_time']);
|
|
|
}
|
|
|
|
|
|
// unset($coinMap['promote_id']);
|
|
|
// setPowerPromoteIds($coinMap,'tab_deposit.promote_id');
|
|
|
|
|
|
$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($coinMap)
|
|
|
->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) {
|
|
|
|
|
|
$value['pay_order_number'] = "'".$value['pay_order_number'];
|
|
|
$value['order_number'] = "'".$value['order_number'];
|
|
|
|
|
|
if (!$value['order_number']) {
|
|
|
$data[$key]['order_number'] = '无';
|
|
|
}
|
|
|
|
|
|
$value['pay_time'] = Date('Y-m-d H:i:s', $value['pay_time']);
|
|
|
|
|
|
$value['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($data);//释放变量的内存
|
|
|
//刷新输出缓冲到浏览器
|
|
|
ob_flush();
|
|
|
flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
|
|
|
}
|
|
|
|
|
|
$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($coinMap)
|
|
|
->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($coinMap)
|
|
|
->group('pay_way')
|
|
|
->select(false);
|
|
|
|
|
|
} elseif($model == 'game_supersign') {
|
|
|
|
|
|
$xlsCell = array('支付订单号', '测试账号', '充值时间', '游戏名称',
|
|
|
'订单金额', ' 实付金额 ', '充值方式', '支付渠道',);
|
|
|
|
|
|
mb_convert_variables('GBK', 'UTF-8', $xlsCell);
|
|
|
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
|
|
|
|
|
|
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'];
|
|
|
}
|
|
|
|
|
|
$map['tab_game_supersign.pay_status'] = $map['pay_status'];
|
|
|
unset($map['pay_status']);
|
|
|
|
|
|
$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,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) {
|
|
|
|
|
|
$value['pay_order_number'] = "'".$value['pay_order_number'];
|
|
|
$value['pay_time'] = Date('Y-m-d H:i:s', $value['pay_time']);
|
|
|
|
|
|
$value['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'] = '其他支付';
|
|
|
}
|
|
|
|
|
|
mb_convert_variables('GBK', 'UTF-8', $value);
|
|
|
fputcsv($fp, $value);
|
|
|
}
|
|
|
|
|
|
unset($data);//释放变量的内存
|
|
|
//刷新输出缓冲到浏览器
|
|
|
ob_flush();
|
|
|
flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
|
|
|
|
|
|
}
|
|
|
|
|
|
$field = "pay_price as cost,sum(pay_price) as pay_amount,pay_way";
|
|
|
} elseif($model == 'deposit') {
|
|
|
|
|
|
$xlsCell = array('支付订单号', 'cp订单号', '测试账号', '充值时间', '订单金额', ' 实付金额 ', '充值方式', '支付渠道');
|
|
|
|
|
|
mb_convert_variables('GBK', 'UTF-8', $xlsCell);
|
|
|
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
|
|
|
|
|
|
$map['pay_source'] = 0;
|
|
|
if ($map['pay_time']) {
|
|
|
$map['create_time'] = $map['pay_time'];
|
|
|
unset($map['pay_time']);
|
|
|
}
|
|
|
// setPowerPromoteIds($map,'tab_deposit.promote_id');
|
|
|
|
|
|
$accessNum = 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();
|
|
|
$pages = ceil($accessNum / $perSize);
|
|
|
|
|
|
for($i = 1; $i <= $pages; $i++) {
|
|
|
|
|
|
$page = ($i - 1) * $perSize;
|
|
|
$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)
|
|
|
->limit($page ,$perSize)
|
|
|
->order('tab_deposit.id DESC')
|
|
|
->select();
|
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
|
$value['pay_order_number'] = "'".$value['pay_order_number'];
|
|
|
$value['order_number'] = "'".$value['order_number'];
|
|
|
|
|
|
$value['pay_time'] = Date('Y-m-d H:i:s', $value['pay_time']);
|
|
|
|
|
|
$value['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'] = '其他支付';
|
|
|
}
|
|
|
|
|
|
mb_convert_variables('GBK', 'UTF-8', $value);
|
|
|
fputcsv($fp, $value);
|
|
|
}
|
|
|
|
|
|
unset($data);//释放变量的内存
|
|
|
//刷新输出缓冲到浏览器
|
|
|
ob_flush();
|
|
|
flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
|
|
|
|
|
|
}
|
|
|
|
|
|
$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'];
|
|
|
}
|
|
|
|
|
|
|
|
|
$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,'.','');
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
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]);
|
|
|
}
|
|
|
}
|
|
|
//总计
|
|
|
if ($model == 'spend') {
|
|
|
$sumAllDataother['pay_order_number'] = '总计';
|
|
|
$sumAllDataother['order_number'] = '------';
|
|
|
$sumAllDataother['user_account'] = '------';
|
|
|
$sumAllDataother['pay_time'] = '------';
|
|
|
$sumAllDataother['game_name'] = '------';
|
|
|
$sumAllDataother['server_name'] = '------';
|
|
|
$sumAllDataother['game_player_name'] = '------';
|
|
|
$sumAllDataother['cost'] = $sumAllData['cost'];
|
|
|
$sumAllDataother['pay_amount'] = $sumAllData['pay_amount'];
|
|
|
$sumAllDataother['pay_type'] = '------';
|
|
|
$sumAllDataother['pay_way'] = '------';
|
|
|
$sumAllDataother['pay_game_status'] = '------';
|
|
|
} elseif($model == 'game_supersign') {
|
|
|
|
|
|
$sumAllDataother['pay_order_number'] = '总计';
|
|
|
$sumAllDataother['user_account'] = '------';
|
|
|
$sumAllDataother['pay_time'] = '------';
|
|
|
$sumAllDataother['game_name'] = '------';
|
|
|
$sumAllDataother['cost'] = $sumAllData['cost'];
|
|
|
$sumAllDataother['pay_amount'] = $sumAllData['pay_amount'];
|
|
|
$sumAllDataother['pay_type'] = '------';
|
|
|
$sumAllDataother['pay_way'] = '------';
|
|
|
|
|
|
} elseif($model == 'deposit') {
|
|
|
|
|
|
$sumAllDataother['pay_order_number'] = '总计';
|
|
|
$sumAllDataother['order_number'] = '------';
|
|
|
$sumAllDataother['user_account'] = '------';
|
|
|
$sumAllDataother['pay_time'] = '------';
|
|
|
$sumAllDataother['cost'] = $sumAllData['cost'];
|
|
|
$sumAllDataother['pay_amount'] = $sumAllData['pay_amount'];
|
|
|
$sumAllDataother['pay_type'] = '------';
|
|
|
$sumAllDataother['pay_way'] = '------';
|
|
|
|
|
|
}
|
|
|
mb_convert_variables('GBK', 'UTF-8',$sumAllDataother);
|
|
|
fputcsv($fp, $sumAllDataother);
|
|
|
|
|
|
$sumAllDataPay['pay_order_number'] = '充值方式合计';
|
|
|
$sumAllDataPay['order_number'] = '';
|
|
|
//支付渠道合计
|
|
|
foreach ($payTypeData as $key => $value) {
|
|
|
$sumAllDataPay['order_number'] .= $key.':'.$value.' ';
|
|
|
}
|
|
|
mb_convert_variables('GBK', 'UTF-8',$sumAllDataPay);
|
|
|
fputcsv($fp, $sumAllDataPay);
|
|
|
//支付渠道
|
|
|
$sumDataPay['pay_order_number'] = '支付渠道';
|
|
|
$sumDataPay['order_number'] = '';
|
|
|
|
|
|
foreach ($sumData as $key => $value) {
|
|
|
$sumDataPay['order_number'] .= $value['pay_way'].':'.$value['pay_amount'].' ';
|
|
|
}
|
|
|
mb_convert_variables('GBK', 'UTF-8',$sumDataPay);
|
|
|
fputcsv($fp, $sumDataPay);
|
|
|
|
|
|
}
|
|
|
function getGameList() {
|
|
|
|
|
|
if (I('partner_id')) {
|
|
|
$map['partner_id'] = I('partner_id');
|
|
|
}
|
|
|
if (I('sdk_type')) {
|
|
|
$map['sdk_version'] = I('sdk_type');
|
|
|
}
|
|
|
$data = M('game','tab_')->field("id,game_name")->where($map)->select();
|
|
|
|
|
|
$this->ajaxReturn($data,'json');
|
|
|
}
|
|
|
|
|
|
} |