diff --git a/Application/Admin/Controller/ExportController.class.php b/Application/Admin/Controller/ExportController.class.php index 7cd7b86cb..cead4d9ab 100644 --- a/Application/Admin/Controller/ExportController.class.php +++ b/Application/Admin/Controller/ExportController.class.php @@ -52,14 +52,18 @@ class ExportController extends Controller $xlsName = $_REQUEST['xlsname']; switch ($id) { case 1: +// $xlsCell = array( +// array('user_account', "玩家账号"), +// array('game_name', "游戏名称"), +// array('server_name', L('Game_area_clothing')), +// array('role_name', "角色名"), +// array('role_level', "游戏等级"), +// array('play_time', "最后登录时间", 'time_format', '*'), +// array('play_ip', "最后登录ip"), +// ); $xlsCell = array( - array('user_account', "玩家账号"), - array('game_name', "游戏名称"), - array('server_name', L('Game_area_clothing')), - array('role_name', "角色名"), - array('role_level', "游戏等级"), - array('play_time', "最后登录时间", 'time_format', '*'), - array('play_ip', "最后登录ip"), + "创建时间","玩家账号", "游戏名称","游戏区服", L('Game_area_clothing'), "角色ID", "角色名", "游戏等级","所属推广员", + "最后登录时间", '最后登录ip', ); if (isset($_REQUEST['game_name'])) { $map['game_name'] = ['like', trim($_REQUEST['game_name'])."%"]; @@ -95,10 +99,53 @@ class ExportController extends Controller $promoter_ids ? $map['promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))] : null; } } - $xlsData = M('user_play_info', 'tab_') + + $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 = M('user_play_info', 'tab_') ->where($map) - ->order('play_time desc') - ->select(); + ->order('play_time desc') + ->count(); +// $accessNum =$accessNum['count']; + + $perSize = 5000;//每次查询的条数 + $pages = ceil($accessNum / $perSize); + $lastId = 0; + + + for($i = 1; $i <= $pages; $i++) { + + $xlsData = M('user_play_info', 'tab_') + ->field("create_time,user_account,game_name,server_id,server_name,role_id,role_name,role_level,promote_account,play_time,play_ip") + ->where($map) + ->limit(($i-1)*$perSize ,$perSize) + ->order('play_time desc') + ->select(); + + foreach($xlsData as $value) { + $value['create_time'] = date("Y-m-d H:i:s",$value['create_time']); + $value['play_time'] = date("Y-m-d H:i:s",$value['play_time']); + 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 2: $xlsName = $xlsName?$xlsName:"渠道注册"; @@ -339,10 +386,10 @@ class ExportController extends Controller $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,register_time,a.login_time - ,a.register_ip,a.lock_status,a.age_status,a.register_way'; + ,a.register_ip,a.device_number,a.lock_status,check_status,a.age_status,a.register_way'; $xlsCell = [L('Account_number_ID'),"玩家账号",L('Subordinate_channel'), "账户平台币" , "累计充值", "金币", "绑定支付宝", "小号", "VIP等级", "注册方式", L('Registration_time'), - "最后登录时间", L('Register_iP'), L('Account_status')]; + "最后登录时间", L('Register_iP'), "设备号" ,L('Account_status'), "拉黑状态"]; $map['tab_user.register_type']=['in','1,2']; $map['tab_user.register_type']=['in','0,1,2,7']; @@ -645,7 +692,9 @@ class ExportController extends Controller $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]['device_number'] = encryption($xlsData[$k]['device_number']); $xlsData[$k]['lock_status'] = $xlsData[$k]['lock_status']==1?'正常':'锁定'; + $xlsData[$k]['check_status'] = $xlsData[$k]['check_status']==1?'正常':'已拉黑'; $xlsData[$k]['register_type'] = $v['register_type'] == 2?'手机号':($v['register_type']==7?'邮箱':'账号'); diff --git a/Application/Admin/Controller/MemberController.class.php b/Application/Admin/Controller/MemberController.class.php index aa41fecb6..f6c322d5f 100644 --- a/Application/Admin/Controller/MemberController.class.php +++ b/Application/Admin/Controller/MemberController.class.php @@ -812,13 +812,21 @@ class MemberController extends ThinkController $map['server_name'] = $_REQUEST['server_name']; unset($_REQUEST['server_name']); } + if (isset($_REQUEST['promote_id'])) { + $map['promote_id'] = $_REQUEST['promote_id']; + unset($_REQUEST['promote_id']); + } // $map['type'] = 1; // $map['login_time'] = ['exp', 'login_time<>0']; $extend = array(); $extend['map'] = $map; - + $count = M('UserLoginRecord','tab_')->field('user_id')->where($extend['map'])->group('user_id')->select(false); + $sql = "select count(user_id) as count from ({$count})t"; + $count = M('UserLoginRecord','tab_')->query($sql); $this->m_title = '登录记录'; + $this->assign('user_count',$count[0]['count']); + $this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Member/login_record', 'status' => 1])->find()); parent::lists("UserLoginRecord", $p, $extend['map']); diff --git a/Application/Admin/View/Member/login_record.html b/Application/Admin/View/Member/login_record.html index 8de70f9e1..7165ab834 100644 --- a/Application/Admin/View/Member/login_record.html +++ b/Application/Admin/View/Member/login_record.html @@ -145,7 +145,8 @@