master
sunke 5 years ago
parent 35f5cc03bb
commit e0d8539ea0

@ -2474,53 +2474,51 @@ class ExportController extends Controller
$params = I('get.'); $params = I('get.');
$map = []; $map = [];
$mapBanlance = [];
$mapSpend['pay_status'] = 1;
$mapSpend['pay_way'] = 0;
$mapDeposit['pay_status'] = 1;
$mapPromoteCoin['type'] = 2;
$mapPromoteCoin['sub_type'] = 4;
$nowTime = date('Y-m-d'); $nowTime = date('Y-m-d');
$initBegTime = date('Y-m-d', strtotime('-6 day', strtotime($nowTime))); $initBegTime = date('Y-m-d', strtotime('-6 day', strtotime($nowTime)));
$initEndTime = date('Y-m-d', time()); $initEndTime = date('Y-m-d', time());
if(!empty($params['user_account'])){ if(!empty($params['user_account'])){
$userInfo = M('user', 'tab_')->where(['account'=>I('user_account')])->getField('id'); $map['account'] = $_REQUEST['user_account'];
$map['user_account'] = $params['user_account']; $userId = M('user', 'tab_')->where(['account'=>$_REQUEST['user_account']])->getField('id');
$mapBanlance['user_account'] = $params['user_account']; $map1['user_id'] = $userId;
$mapSpend['user_account'] = $params['user_account']; $map2['user_id'] = $userId;
$mapDeposit['user_account'] = $params['user_account']; $map3['user_id'] = $userId;
$mapPromoteCoin['target_id'] = $userInfo; $map4['user_id'] = $userId;
} }
if (!empty($params['timestart']) && !empty($params['timeend'])) { if (!empty($params['timestart']) && !empty($params['timeend'])) {
$map['create_time'] = array('between', [strtotime($params['timestart']), strtotime($params['timeend']) + 86399]); $map['create_time'] = array('between', [strtotime($params['timestart']), strtotime($params['timeend']) + 86399]);
$mapPromoteCoin['create_time'] = array('between', [strtotime($params['timestart']), strtotime($params['timeend']) + 86399]);
$mapDeposit['create_time'] = array('between', [strtotime($params['timestart']), strtotime($params['timeend']) + 86399]);
$mapSpend['pay_time'] = array('between', [strtotime($params['timestart']), strtotime($params['timeend']) + 86399]);
} elseif (!empty($params['timestart']) && empty($params['timeend'])) { } elseif (!empty($params['timestart']) && empty($params['timeend'])) {
$map['create_time'] = array('between', [strtotime($params['timestart']), time()]); $map['create_time'] = array('between', [strtotime($params['timestart']), time()]);
$mapPromoteCoin['create_time'] = array('between', [strtotime($params['timestart']), time()]);
$mapDeposit['create_time'] = array('between', [strtotime($params['timestart']), time()]);
$mapSpend['pay_time'] = array('between', [strtotime($params['timestart']), time()]);
} elseif (empty($params['timestart']) && !empty($params['timeend'])) { } elseif (empty($params['timestart']) && !empty($params['timeend'])) {
$map['create_time'] = array('elt', (strtotime($params['timeend']) + 86399)); $map['create_time'] = array('elt', (strtotime($params['timeend']) + 86399));
$mapPromoteCoin['create_time'] = array('elt', (strtotime($params['timeend']) + 86399));
$mapDeposit['create_time'] = array('elt', (strtotime($params['timeend']) + 86399));
$mapSpend['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399));
} }
elseif (empty($_REQUEST['timestart']) && empty($_REQUEST['timeend']) && empty($params['user_account'])) { elseif (empty($_REQUEST['timestart']) && empty($_REQUEST['timeend']) && empty($params['user_account'])) {
$map['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); $map['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]);
$mapPromoteCoin['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]);
$mapDeposit['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); }
$mapSpend['pay_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); $map1['create_time'] = $map['create_time'];
} $map1['pay_type'] = 1;
$total = M('deposit', 'tab_')->where($mapDeposit)->sum('pay_amount'); $totalSpend = M('value_detail_log', 'tab_')->where($map1)->sum('value');
$totalSpend = M('spend', 'tab_')->where($mapSpend)->sum('pay_amount');
$total_bind_balance = M('user_play', 'tab_')->where($mapBanlance)->sum('bind_balance');
$totalPromoteCoin = M('promote_coin_record', 'tab_')->where($mapPromoteCoin)->sum('coin');
$total = empty($total) ? '0.00' : $total;
$totalSpend = empty($totalSpend) ? '0.00' : $totalSpend; $totalSpend = empty($totalSpend) ? '0.00' : $totalSpend;
$total_bind_balance = empty($total_bind_balance) ? '0.00' : $total_bind_balance;
$totalPromoteCoin = empty($totalPromoteCoin) ? '0.00' : $totalPromoteCoin; $map2['create_time'] = $map['create_time'];
$map2['pay_type'] = 2;
$deposit = M('value_detail_log', 'tab_')->where($map2)->sum('value');
$deposit= empty($deposit) ? '0.00' : $deposit;
$map3['create_time'] = $map['create_time'];
$map3['pay_type'] = 3;
$allpromoteCoin = M('value_detail_log', 'tab_')->where($map3)->sum('value');
$allpromoteCoin = empty($promoteCoin) ? '0.00' : $promoteCoin;
$map4['create_time'] = $map['create_time'];
$banlace = M('value_detail_log', 'tab_')->field('user_id, after_value')->where($map4)->group('user_id')->select();
$banlaceTotal = 0;
foreach($banlace as $k222 => $vvv) {
$banlaceTotal += $vvv['after_value'];
}
$csvFileName = '平台币统计'.'.csv'; $csvFileName = '平台币统计'.'.csv';
//设置好告诉浏览器要下载excel文件的headers //设置好告诉浏览器要下载excel文件的headers
@ -2533,69 +2531,77 @@ class ExportController extends Controller
$fp = fopen('php://output', 'a');//打开output流 $fp = fopen('php://output', 'a');//打开output流
mb_convert_variables('GBK', 'UTF-8', $xlsCell); mb_convert_variables('GBK', 'UTF-8', $xlsCell);
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中 fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
$count = M('user', 'tab_')
// $datas = M('user_play','tab_') ->field('id, account')
// ->group('user_id')
// ->field("id,user_id,user_account,bind_balance")
// ->where($map)
// ->page($page,$row)
// ->select();
$count = M('user_play','tab_')
->field("id,user_id,user_account,bind_balance")
->where($map) ->where($map)
->count('DISTINCT user_id'); ->count();
$perSize = 10000;//每次查询的条数 $perSize = 1000;//每次查询的条数
$pages = ceil($count / $perSize); $pages = ceil($count / $perSize);
for($i = 1; $i <= $pages; $i++) { for($i = 1; $i <= $pages; $i++) {
$datas = M('user', 'tab_')
$datas = M('user_play','tab_') ->field('id, account')
->group('user_id')
->field("user_id,user_account,bind_balance")
->where($map) ->where($map)
->limit(($i-1)*$perSize ,$perSize) ->limit(($i-1)*$perSize ,$perSize)
->select(); ->select();
$allDatas = [];
foreach($datas as $data) { foreach($datas as $key => $data) {
$user_id = $data['user_id'];
$mapSpend['user_id'] = $user_id; $allDatas['user_id'] = $data['id'];
$mapDeposit['user_id'] = $user_id; $allDatas['user_account'] = $data['account'];
$mapPromoteCoin['target_id'] = $user_id; $spend = M('value_detail_log', 'tab_')->where(['user_id'=>$id, 'pay_type'=>1])->sum('value');
$bind_balance = M('user_play', 'tab_')->where(['user_id' => $user_id])->sum('bind_balance'); $map5['user_id'] = $id;
$spend = M('spend', 'tab_')->where($mapSpend)->sum('pay_amount'); $map5['pay_type'] = 1;
if (empty($spend)) { $map5['create_time'] = $map['create_time'];
$spend = M('value_detail_log', 'tab_')->where($map5)->sum('value');
if(empty($spend)) {
$spend = '0.00'; $spend = '0.00';
} }
$deposit = M('deposit', 'tab_')->where($mapDeposit)->sum('pay_amount'); $map6['user_id'] = $id;
if (empty($deposit)) { $map6['pay_type'] = 2;
$map6['create_time'] = $map['create_time'];
$deposit = M('value_detail_log', 'tab_')->where($map6)->sum('value');
if(empty($deposit)) {
$deposit = '0.00'; $deposit = '0.00';
} }
$promoteCoin = M('promote_coin_record', 'tab_')->where($mapPromoteCoin)->sum('coin'); $map7['user_id'] = $id;
if (empty($promoteCoin)) { $map7['pay_type'] = 3;
$map7['create_time'] = $map['create_time'];
$promoteCoin = M('value_detail_log', 'tab_')->where($map7)->sum('value');
if(empty($promoteCoin)) {
$promoteCoin = '0.00'; $promoteCoin = '0.00';
} }
$data['user_id'] = $data['user_id'];
$data['user_account'] = $data['user_account']; $map8['user_id'] = $id;
$data['bind_balance'] = $bind_balance; $map8['create_time'] = $map['create_time'];
$data['spend_amount'] = $spend; $newValueByTimeDatas = M('value_detail_log', 'tab_')->field('after_value')->where($map8)->group('user_id')->select();
$data['deposit_amount'] = $deposit; if(empty($newValueByTimeDatas)) {
$data['coin_amount'] = $promoteCoin; $aValue = '0.00';
mb_convert_variables('GBK', 'UTF-8', $data); }else {
fputcsv($fp, $data); $aValue = $newValueByTimeDatas['after_value'];
}
$allDatas['bind_balance'] = $aValue;
$allDatas['spend_amount'] = $spend;
$allDatas['deposit_amount'] = $deposit;
$allDatas['coin_amount'] = $promoteCoin;
mb_convert_variables('GBK', 'UTF-8', $allDatas);
fputcsv($fp, $allDatas);
} }
unset($datas);//释放变量的内存
unset($allDatas);//释放变量的内存
//刷新输出缓冲到浏览器 //刷新输出缓冲到浏览器
ob_flush(); ob_flush();
flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
} }
$alldatas['user_id'] = "汇总(检索时间内所有数据的统计)"; $alldatas1['user_id'] = "汇总(检索时间内所有数据的统计)";
$alldatas['user_account'] = ""; $alldatas1['user_account'] = "";
$alldatas['bind_balance'] = $total_bind_balance; $alldatas1['bind_balance'] = $banlaceTotal;
$alldatas['spend_amount'] = $totalSpend; $alldatas1['spend_amount'] = $totalSpend;
$alldatas['deposit_amount'] = $total; $alldatas1['deposit_amount'] = $deposit;
$alldatas['coin_amount'] = $totalPromoteCoin; $alldatas1['coin_amount'] = $promoteCoin;
mb_convert_variables('GBK', 'UTF-8', $alldatas); mb_convert_variables('GBK', 'UTF-8', $alldatas1);
fputcsv($fp, $alldatas); fputcsv($fp, $alldatas1);
fclose($fp); fclose($fp);
//操作日志 //操作日志
@ -2612,6 +2618,7 @@ class ExportController extends Controller
$params = I('get.'); $params = I('get.');
$map = []; $map = [];
$orderNumber = $params['order_number'];
if($orderNumber) { if($orderNumber) {
$map['order_number'] = $params['order_number']; $map['order_number'] = $params['order_number'];
} }
@ -2679,9 +2686,14 @@ class ExportController extends Controller
ob_flush(); ob_flush();
flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
} }
if ($total >= 0) {
$fuhao = '+';
}else {
$fuhao = '-';
}
$alldatas['order_number'] = "汇总(检索时间内所有数据的统计)"; $alldatas['order_number'] = "汇总(检索时间内所有数据的统计)";
$alldatas['create_time'] = ""; $alldatas['create_time'] = "";
$alldatas['type'] = ""; $alldatas['type'] = $fuhao;
$alldatas['value'] = $total; $alldatas['value'] = $total;
$alldatas['after_value'] = ""; $alldatas['after_value'] = "";

Loading…
Cancel
Save