|
|
|
@ -5,6 +5,17 @@ use Think\Controller;
|
|
|
|
|
|
|
|
|
|
class ExportController extends Controller
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ExportController constructor.
|
|
|
|
|
*/
|
|
|
|
|
public function __construct()
|
|
|
|
|
{
|
|
|
|
|
parent::__construct();
|
|
|
|
|
set_time_limit(0);
|
|
|
|
|
ini_set('memory_limit', '512M');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function exportExcel($expTitle, $expCellName, $expTableData)
|
|
|
|
|
{
|
|
|
|
|
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
|
|
|
|
@ -186,85 +197,82 @@ class ExportController extends Controller
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
if($_REQUEST['type']==2){
|
|
|
|
|
$xlsCell = array(
|
|
|
|
|
array('id', L('Account_number_ID')),
|
|
|
|
|
array('register_type', L('Third_party_source'), "get_registertype", '*'),
|
|
|
|
|
array('account', "玩家账号"),
|
|
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
|
|
array('balance', "账户平台币"),
|
|
|
|
|
array('recharge_total', "累计充值"),
|
|
|
|
|
array('gold_coin', "金币"),
|
|
|
|
|
array('alipay', "绑定支付宝"),
|
|
|
|
|
array('small_count', "小号"),
|
|
|
|
|
array('vip_level', "VIP等级"),
|
|
|
|
|
array('register_time', L('Registration_time'), 'time_format', '*'),
|
|
|
|
|
array('login_time', "最后登录时间", 'time_format', '*'),
|
|
|
|
|
array('register_ip', L('Register_iP')),
|
|
|
|
|
array('lock_status', L('Account_status'), 'get_info_status', '*', '4'),
|
|
|
|
|
);
|
|
|
|
|
// $xlsCell = array(
|
|
|
|
|
// array('id', L('Account_number_ID')),
|
|
|
|
|
// array('register_type', L('Third_party_source'), "get_registertype", '*'),
|
|
|
|
|
// array('account', "玩家账号"),
|
|
|
|
|
// array('promote_account', L('Subordinate_channel')),
|
|
|
|
|
// array('balance', "账户平台币"),
|
|
|
|
|
// array('recharge_total', "累计充值"),
|
|
|
|
|
// array('gold_coin', "金币"),
|
|
|
|
|
// array('alipay', "绑定支付宝"),
|
|
|
|
|
// array('small_count', "小号"),
|
|
|
|
|
// array('vip_level', "VIP等级"),
|
|
|
|
|
// array('register_time', L('Registration_time'), 'time_format', '*'),
|
|
|
|
|
// array('login_time', "最后登录时间", 'time_format', '*'),
|
|
|
|
|
// array('register_ip', L('Register_iP')),
|
|
|
|
|
// array('lock_status', L('Account_status'), 'get_info_status', '*', '4'),
|
|
|
|
|
// );
|
|
|
|
|
$field = 'a.id,a.account,a.id as get_registertype,a.promote_account,a.balance,IFNULL(sum(ss.pay_amount),0) as recharge_total,
|
|
|
|
|
a.gold_coin,a.alipay,a.id as small_count,a.id as vip_level,a.register_type,a.register_time
|
|
|
|
|
,a.register_ip,a.login_time,a.device_number,a.lock_status,check_status,a.age_status,a.register_way,
|
|
|
|
|
a.register_type';
|
|
|
|
|
$xlsCell = [L('Account_number_ID'),"第三方来源","绑定账号",L('Subordinate_channel'), "账户平台币"
|
|
|
|
|
, "累计充值", "金币", "绑定支付宝", "小号", "VIP等级", L('Registration_time'),
|
|
|
|
|
L('Register_iP'), "最后登录时间","设备号", L('Account_status'),"拉黑状态"];
|
|
|
|
|
$map['tab_user.register_type']= ['in','3,4,5,6'];
|
|
|
|
|
}else{
|
|
|
|
|
$xlsCell = array(
|
|
|
|
|
array('id', L('Account_number_ID')),
|
|
|
|
|
array('account', "玩家账号"),
|
|
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
|
|
array('balance', "账户平台币"),
|
|
|
|
|
array('recharge_total', "累计充值"),
|
|
|
|
|
array('gold_coin', "金币"),
|
|
|
|
|
array('alipay', "绑定支付宝"),
|
|
|
|
|
array('small_count', "小号"),
|
|
|
|
|
array('vip_level', "VIP等级"),
|
|
|
|
|
array('register_type', "注册方式"),
|
|
|
|
|
array('register_time', L('Registration_time'), 'time_format', '*'),
|
|
|
|
|
array('login_time', "最后登录时间", 'time_format', '*'),
|
|
|
|
|
array('register_ip', L('Register_iP')),
|
|
|
|
|
array('lock_status', L('Account_status'), 'get_info_status', '*', '4'),
|
|
|
|
|
);
|
|
|
|
|
// $xlsCell = array(
|
|
|
|
|
// array('id', L('Account_number_ID')),
|
|
|
|
|
// array('account', "玩家账号"),
|
|
|
|
|
// array('promote_account', L('Subordinate_channel')),
|
|
|
|
|
// array('balance', "账户平台币"),
|
|
|
|
|
// array('recharge_total', "累计充值"),
|
|
|
|
|
// array('gold_coin', "金币"),
|
|
|
|
|
// array('alipay', "绑定支付宝"),
|
|
|
|
|
// array('small_count', "小号"),
|
|
|
|
|
// array('vip_level', "VIP等级"),
|
|
|
|
|
// array('register_type', "注册方式"),
|
|
|
|
|
// array('register_time', L('Registration_time'), 'time_format', '*'),
|
|
|
|
|
// array('login_time', "最后登录时间", 'time_format', '*'),
|
|
|
|
|
// array('register_ip', L('Register_iP')),
|
|
|
|
|
// array('lock_status', L('Account_status'), 'get_info_status', '*', '4'),
|
|
|
|
|
// );
|
|
|
|
|
$field = 'a.id,a.account,a.promote_account,a.balance,IFNULL(sum(ss.pay_amount),0) as recharge_total,
|
|
|
|
|
a.gold_coin,a.alipay,a.id as small_count,a.id as vip_level,a.register_type,a.register_time
|
|
|
|
|
,a.register_ip,a.login_time,a.device_number,a.lock_status,check_status,a.age_status,a.register_way,
|
|
|
|
|
a.register_type';
|
|
|
|
|
$xlsCell = [L('Account_number_ID'),"玩家账号",L('Subordinate_channel'), "账户平台币"
|
|
|
|
|
, "累计充值", "金币", "绑定支付宝", "小号", "VIP等级", "注册方式", L('Registration_time'),
|
|
|
|
|
L('Register_iP'), "最后登录时间","设备号", L('Account_status'),"拉黑状态"];
|
|
|
|
|
$map['tab_user.register_type']=['in','1,2'];
|
|
|
|
|
$map['tab_user.register_type']=['in','0,1,2,7'];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['user_id'])) {
|
|
|
|
|
$map['tab_user.id'] = $_REQUEST['user_id'];
|
|
|
|
|
unset($_REQUEST['user_id']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['device_number'])) {
|
|
|
|
|
$map['tab_user.device_number'] = $_REQUEST['device_number'];
|
|
|
|
|
unset($_REQUEST['device_number']);
|
|
|
|
|
}
|
|
|
|
|
$hav = '';
|
|
|
|
|
if ($_REQUEST['promote_id'] != '') {
|
|
|
|
|
if ($_REQUEST['promote_id'] == 'UC') {
|
|
|
|
|
$map['tab_user.promote_account'] = 'UC用户';
|
|
|
|
|
$maps['tab_user.promote_account'] = 'UC用户';
|
|
|
|
|
$hav .= "tab_user.promote_account = 'UC用户' ";
|
|
|
|
|
} else if ($_REQUEST['promote_id'] == 0) {
|
|
|
|
|
$map['tab_user.promote_id'] = 0;
|
|
|
|
|
$maps['tab_user.promote_id'] = 0;
|
|
|
|
|
$hav .= "tab_user.promote_id = 0";
|
|
|
|
|
} else {
|
|
|
|
|
$promoter_ids = D("Promote")->where("chain like '%/{$_REQUEST['promote_id']}/%' or id={$_REQUEST['promote_id']}")->field('id')->select();
|
|
|
|
|
if ($promoter_ids) {
|
|
|
|
|
$map['tab_user.promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))];
|
|
|
|
|
$maps['tab_user.promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))];
|
|
|
|
|
$hav .= "tab_user.promote_id in (" . implode(',', array_column($promoter_ids, 'id')) . ") ";
|
|
|
|
|
$spendprom = " AND ss.promote_id IN (" . implode(',', array_column($promoter_ids, 'id')) . ") ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$game_map = "";
|
|
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
|
|
$game_map .= " and tab_user_play.game_id in (".implode(',', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')).")";
|
|
|
|
|
}
|
|
|
|
|
$game_play_map = '';
|
|
|
|
|
if (isset($_REQUEST['server_name'])) {
|
|
|
|
|
$game_play_map .= " and tab_user_play_info.server_name = '{$_REQUEST['server_name']}' ";
|
|
|
|
|
}
|
|
|
|
|
// if (isset($_REQUEST['promote_account'])) {
|
|
|
|
|
// $map['promote_id'] = get_promote_id(trim(I('promote_account')));
|
|
|
|
|
// unset($_REQUEST['promote_account']);
|
|
|
|
|
// }
|
|
|
|
|
if (isset($_REQUEST['register_way'])) {
|
|
|
|
|
if($_REQUEST['type']==1) {
|
|
|
|
|
if (I('type', 1) == 1) {
|
|
|
|
|
if (isset($_GET['register_way'])) {
|
|
|
|
|
if ($_GET['register_way'] == 1) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= ' tab_user.register_type in (0,1)';
|
|
|
|
|
$maps['tab_user.register_type'] = ['in',[0,1]];
|
|
|
|
|
$hav .= ' tab_user.register_type in (1)';
|
|
|
|
|
$maps['tab_user.register_type'] = 1;
|
|
|
|
|
} elseif ($_GET['register_way'] == 7) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= ' tab_user.register_type in(7)';
|
|
|
|
@ -275,31 +283,90 @@ class ExportController extends Controller
|
|
|
|
|
$maps['tab_user.register_type'] = 2;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$map['register_way'] = I('register_way');
|
|
|
|
|
unset($_REQUEST['register_way']);
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= ' tab_user.register_type in (1,2,7)';
|
|
|
|
|
$maps['tab_user.register_type'] = ['in', [1, 2, 7]];
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (isset($_GET['register_type'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= ' tab_user.register_type = ' . $_GET['register_type'];
|
|
|
|
|
$maps['tab_user.register_type'] = $_GET['register_type'];
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= ' tab_user.register_type in (0,3,4,5,6)';
|
|
|
|
|
$maps['tab_user.register_type'] = ['in', [0, 3, 4, 5, 6]];
|
|
|
|
|
}
|
|
|
|
|
if (isset($_REQUEST['register_type'])) {
|
|
|
|
|
$map['register_type'] = I('register_type');
|
|
|
|
|
unset($_REQUEST['register_type']);
|
|
|
|
|
}
|
|
|
|
|
if (isset($_REQUEST['status'])) {
|
|
|
|
|
$map['lock_status'] = I('status');
|
|
|
|
|
unset($_REQUEST['status']);
|
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['user_id'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= "tab_user.id = '{$_REQUEST['user_id']}'";
|
|
|
|
|
$maps['tab_user.id'] = $_REQUEST['user_id'];
|
|
|
|
|
unset($_REQUEST['user_id']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['account'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= "tab_user.account like '%" . I('account') . "%'";
|
|
|
|
|
$maps['tab_user.account'] = ['like', "%" . I('account') . "%"];
|
|
|
|
|
unset($_REQUEST['account']);
|
|
|
|
|
}
|
|
|
|
|
if (isset($_REQUEST['device_number'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= "tab_user.device_number = '{$_REQUEST['device_number']}'";
|
|
|
|
|
$maps['tab_user.device_number'] = $_REQUEST['device_number'];
|
|
|
|
|
unset($_REQUEST['device_number']);
|
|
|
|
|
}
|
|
|
|
|
if (isset($_REQUEST['age_status'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= 'tab_user.age_status =' . I('age_status');
|
|
|
|
|
$maps['tab_user.age_status'] = I('age_status');
|
|
|
|
|
unset($_REQUEST['age_status']);
|
|
|
|
|
}
|
|
|
|
|
if (!empty(I('time_start')) && !empty(I('time_end'))) {
|
|
|
|
|
$map['register_time'] = array('BETWEEN', array(strtotime(I('get.time_start')), strtotime(I('time_end')) + 24 * 60 * 60 - 1));
|
|
|
|
|
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= 'tab_user.register_time BETWEEN ' . strtotime(I('time_start')) . ' AND ' . (strtotime(I('time_end')) + 24 * 60 * 60 - 1);
|
|
|
|
|
$maps['tab_user.register_time'] = ['between', [strtotime(I('time_start')), strtotime(I('time_end')) + 86399]];
|
|
|
|
|
unset($_REQUEST['time_start']);
|
|
|
|
|
unset($_REQUEST['time_end']);
|
|
|
|
|
} elseif (isset($_REQUEST['time_start'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= 'tab_user.register_time > ' . strtotime(I('time_start'));
|
|
|
|
|
$maps['tab_user.register_time'] = ['GT', strtotime(I('time_start'))];
|
|
|
|
|
unset($_REQUEST['time_start']);
|
|
|
|
|
} elseif (isset($_REQUEST['time_end'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= 'tab_user.register_time < ' . (strtotime(I('time_end')) + 86399);
|
|
|
|
|
$maps['tab_user.register_time'] = ['LT', strtotime(I('time_end')) + 86399];
|
|
|
|
|
unset($_REQUEST['time_end']);
|
|
|
|
|
}
|
|
|
|
|
empty(I('account')) || $map['account'] = ['like', '%' . I('account') . '%'];
|
|
|
|
|
//排序
|
|
|
|
|
if (I('total_status') == 1) {
|
|
|
|
|
$order = 'cumulative asc';
|
|
|
|
|
} elseif (I('total_status') == 2) {
|
|
|
|
|
$order = 'cumulative desc';
|
|
|
|
|
} else {
|
|
|
|
|
$order = 'id desc';
|
|
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= 'tab_user.register_time BETWEEN ' . strtotime(I('start')) . ' AND ' . strtotime(I('end'));
|
|
|
|
|
$maps['tab_user.register_time'] = array('between', [strtotime(I('start')), strtotime(I('end'))]);
|
|
|
|
|
unset($_REQUEST['start']);
|
|
|
|
|
unset($_REQUEST['end']);
|
|
|
|
|
}
|
|
|
|
|
if (!empty(I('line_day'))) {
|
|
|
|
|
$day = strtotime(date('Y-m-d')) - intval(I('line_day')) * 86400;
|
|
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
|
|
$hav .= $day . '> tab_user.login_time';
|
|
|
|
|
$maps['tab_user.login_time'] = ['lt', $day];
|
|
|
|
|
}
|
|
|
|
|
if (isset($_REQUEST['status'])) {
|
|
|
|
|
$map['lock_status'] = $_REQUEST['status'];
|
|
|
|
|
unset($_REQUEST['status']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if (isset($_REQUEST['game_name'])) {
|
|
|
|
|
// //$game_map .= " and tab_user_play.game_id in (" . implode(',', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')) . ")";
|
|
|
|
|
// }
|
|
|
|
|
$spendprom = " and ss.game_id in (".implode(',', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')).")";
|
|
|
|
|
if (isset($_REQUEST['server_name'])) {
|
|
|
|
|
$map['server_name'] = ['like', "{$_REQUEST['server_name']}%"];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['viplevel'])) {
|
|
|
|
@ -307,27 +374,99 @@ class ExportController extends Controller
|
|
|
|
|
$havs = get_vip_level_limit('recharge_total', $_REQUEST['viplevel']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//排序
|
|
|
|
|
$order = '';
|
|
|
|
|
if (I('key') == 1) {
|
|
|
|
|
if (I('balance_status') == 1) {
|
|
|
|
|
$order = 'balance,';
|
|
|
|
|
} elseif (I('balance_status') == 2) {
|
|
|
|
|
$order = 'balance desc,';
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (I('recharge_status') == 1) {
|
|
|
|
|
$order .= 'recharge_total,';
|
|
|
|
|
} elseif (I('recharge_status') == 2) {
|
|
|
|
|
$order .= 'recharge_total desc,';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$order .= 'a.id desc';
|
|
|
|
|
|
|
|
|
|
$user = M('user', 'tab_');
|
|
|
|
|
$map['puid'] = array('eq', 0);
|
|
|
|
|
$map['is_platform'] = 0;
|
|
|
|
|
|
|
|
|
|
$usermodel = M('user', 'tab_');
|
|
|
|
|
$sql1 = $usermodel->field('tab_user.*,IFNULL(sum(b.pay_amount),0) as deposit_total')
|
|
|
|
|
->join('left join tab_deposit AS b ON tab_user.id = b.user_id AND b.pay_status = 1')
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('tab_user.id')
|
|
|
|
|
->where($hav)
|
|
|
|
|
// ->order($order)
|
|
|
|
|
->select(false);
|
|
|
|
|
|
|
|
|
|
set_time_limit(0);
|
|
|
|
|
// $columns = [
|
|
|
|
|
// '序号ID', '姓名', '电话',
|
|
|
|
|
// ];
|
|
|
|
|
|
|
|
|
|
$fileName = '导出.xlsx';
|
|
|
|
|
$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流中
|
|
|
|
|
|
|
|
|
|
$accessNum = '100000';//从数据库获取总量,假设是十万
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//计数
|
|
|
|
|
$sql = M('user', 'tab_')->field('tab_user.id,IFNULL(sum(ss.pay_amount),0) AS recharge_total')
|
|
|
|
|
->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1'.$spendprom)
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('tab_user.id')
|
|
|
|
|
->where($hav)
|
|
|
|
|
->having($havs)->select(false);
|
|
|
|
|
|
|
|
|
|
//替换为新表
|
|
|
|
|
if($_REQUEST['promote_id'] && $_REQUEST['promote_id'] > -1){
|
|
|
|
|
$xlsData = M('user', 'tab_')->field('tab_user.id,tab_user.age_status,tab_user.account,tab_user.gold_coin,tab_user.alipay,tab_user.balance,tab_user.promote_account,register_time,tab_user.lock_status,tab_user.register_way,tab_user.register_type,tab_user.register_ip,tab_user.login_time,IFNULL(sum(ss.pay_amount),0) AS recharge_total')
|
|
|
|
|
$sql = M('user', 'tab_')->field('tab_user.id,IFNULL(sum(ss.pay_amount),0) AS recharge_total')
|
|
|
|
|
->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1'.$spendprom)
|
|
|
|
|
->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false)
|
|
|
|
|
->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false)
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('tab_user.id')
|
|
|
|
|
->order($order)
|
|
|
|
|
->where($hav)
|
|
|
|
|
->having($havs)->select(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$jcount = M('User', 'tab_')->field('count(a.id) as count,sum(a.recharge_total) recharge_total')->table('(' . $sql . ') as a')->select();
|
|
|
|
|
$accessNum = $jcount[0]['count'] ?:0 ;
|
|
|
|
|
|
|
|
|
|
$perSize = 5000;//每次查询的条数
|
|
|
|
|
$pages = ceil($accessNum / $perSize);
|
|
|
|
|
|
|
|
|
|
for($i = 1; $i <= $pages; $i++) {
|
|
|
|
|
|
|
|
|
|
if($_REQUEST['promote_id'] && $_REQUEST['promote_id'] > -1){
|
|
|
|
|
$xlsData = $usermodel->table('(' . $sql1 . ') as a ')->field($field)
|
|
|
|
|
->join('left join tab_spend as ss on ss.user_id=a.id AND ss.pay_status = 1'.$spendprom)
|
|
|
|
|
->limit(($i-1)*$perSize ,$perSize)
|
|
|
|
|
->having($havs)
|
|
|
|
|
->group('a.id')
|
|
|
|
|
->order($order)
|
|
|
|
|
->select();
|
|
|
|
|
// echo $data;die();
|
|
|
|
|
}else{
|
|
|
|
|
$xlsData = M('user', 'tab_')->field('tab_user.id,tab_user.age_status,tab_user.account,tab_user.gold_coin,tab_user.alipay,tab_user.balance,tab_user.promote_account,register_time,tab_user.lock_status,tab_user.register_way,tab_user.register_type,tab_user.register_ip,tab_user.login_time,IFNULL(sum(ss.pay_amount),0) AS recharge_total')
|
|
|
|
|
->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1')
|
|
|
|
|
->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false)
|
|
|
|
|
->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false)
|
|
|
|
|
->where($map)
|
|
|
|
|
->group('tab_user.id')
|
|
|
|
|
->order($order)
|
|
|
|
|
$xlsData = $usermodel->table('(' . $sql1 . ') as a ')->field($field)
|
|
|
|
|
->join('left join tab_spend as ss on ss.user_id=a.id AND ss.pay_status = 1')
|
|
|
|
|
->limit(($i-1)*$perSize ,$perSize)
|
|
|
|
|
->having($havs)
|
|
|
|
|
->group('a.id')
|
|
|
|
|
->order($order)
|
|
|
|
|
->select();
|
|
|
|
|
}
|
|
|
|
|
//数据
|
|
|
|
@ -347,6 +486,14 @@ class ExportController extends Controller
|
|
|
|
|
if(empty($v['alipay'])){
|
|
|
|
|
$xlsData[$k]['alipay'] = '--';
|
|
|
|
|
}
|
|
|
|
|
if($_REQUEST['type']==2){
|
|
|
|
|
$xlsData[$k]['register_type'] = get_registertype($v['register_type']);
|
|
|
|
|
}
|
|
|
|
|
$xlsData[$k]['register_time'] = date('Y-m-d H:i:s',$xlsData[$k]['register_time']);
|
|
|
|
|
$xlsData[$k]['login_time'] = date('Y-m-d H:i:s',$xlsData[$k]['login_time']);
|
|
|
|
|
$xlsData[$k]['lock_status'] = $xlsData[$k]['lock_status']==1?'正常':'锁定';
|
|
|
|
|
$xlsData[$k]['check_status'] = $xlsData[$k]['check_status']==1?'正常':'已拉黑';
|
|
|
|
|
$xlsData[$k]['device_number'] = $xlsData[$k]['device_number']."'";
|
|
|
|
|
|
|
|
|
|
$xlsData[$k]['register_type'] = $v['register_type'] == 2?'手机号':($v['register_type']==7?'邮箱':'账号');
|
|
|
|
|
|
|
|
|
@ -361,10 +508,24 @@ class ExportController extends Controller
|
|
|
|
|
$xlsData[$k]['small_count'] += $s['count'];break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
unset($xlsData[$k]['age_status']);
|
|
|
|
|
unset($xlsData[$k]['register_way']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach($xlsData as $value) {
|
|
|
|
|
mb_convert_variables('GBK', 'UTF-8', $value);
|
|
|
|
|
fputcsv($fp, $value);
|
|
|
|
|
$lastId = $value['id'];
|
|
|
|
|
}
|
|
|
|
|
unset($xlsData);//释放变量的内存
|
|
|
|
|
//刷新输出缓冲到浏览器
|
|
|
|
|
ob_flush();
|
|
|
|
|
flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
|
|
|
|
|
}
|
|
|
|
|
fclose($fp);
|
|
|
|
|
exit();
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
@ -5562,8 +5723,8 @@ if ($key == 'model'){
|
|
|
|
|
|
|
|
|
|
function gameFinanceDetail() {
|
|
|
|
|
|
|
|
|
|
set_time_limit(0);
|
|
|
|
|
ini_set('memory_limit', '512M');
|
|
|
|
|
// set_time_limit(0);
|
|
|
|
|
// ini_set('memory_limit', '512M');
|
|
|
|
|
$month = I("game_name");
|
|
|
|
|
$xlsName = $month.'充值流水';
|
|
|
|
|
|
|
|
|
|