diff --git a/Application/Home/Controller/DownloadController.class.php b/Application/Home/Controller/DownloadController.class.php index 0a524b649..695c1c244 100644 --- a/Application/Home/Controller/DownloadController.class.php +++ b/Application/Home/Controller/DownloadController.class.php @@ -3200,31 +3200,39 @@ class DownloadController extends BaseController { unset($map['begintime']); unset($map['endtime']); //$spendMap['_string'] = 'uc.game_id = tab_user_play_info.game_id and uc.server_id = tab_user_play_info.server_id and uc.role_id = tab_user_play_info.role_id'; - - $fieldUC = "sum(uc.recharge_cost) recharge_cost,sum(uc.recharge_count) recharge_count,sum(if(uc.create_time = {$nowTime},uc.recharge_cost,0)) as recharge_cost_today"; - $fieldUI = "ui.user_account,ui.game_name,ui.role_name,ui.role_level,ui.server_name,ui.play_time,ui.play_ip,ui.promote_account,ui.sdk_version,ui.create_time"; - $loginRecordMap['lr.create_time'] = $map['uc.create_time']; - $loginRecordMap['_string'] = 'lr.user_id = uc.user_id and lr.game_id = uc.game_id'; - $fieldLR = M('login_daily_record', 'tab_')->alias('lr') - ->field("count(*) as count") - ->where($loginRecordMap) - ->buildSql(); - $field = $fieldUC . ',' . $fieldUI . ',' . $fieldLR . ' as user_game_login_count'; - $subQuery = M('user_play_data_count', 'tab_')->alias('uc') - ->field($field) - ->join('left join tab_user_play_info as ui on ui.game_id = uc.game_id and ui.server_id = uc.server_id and ui.role_id = uc.role_id') - ->where($map) - ->group('uc.role_id,uc.server_id,uc.game_id') - ->buildSql(); + + $fieldUC = "sum(uc.recharge_cost) recharge_cost,sum(uc.recharge_count) recharge_count,sum(if(uc.create_time = {$nowTime},uc.recharge_cost,0)) as recharge_cost_today,uc.user_id"; + $fieldUI = "ui.user_account,ui.game_name,ui.role_name,ui.role_level,ui.server_name,ui.play_time,ui.play_ip,ui.promote_account,ui.sdk_version,ui.create_time"; + + $loginRecordMap['lr.create_time'] = $map['uc.create_time']; + $loginRecordMap['_string'] = 'lr.user_id = uc.user_id and lr.game_id = uc.game_id'; + $fieldLR = M('login_daily_record', 'tab_')->alias('lr') + ->field("count(*) as count") + ->where($loginRecordMap) + ->buildSql(); + $field = $fieldUC . ',' . $fieldUI . ',' . $fieldLR . ' as user_game_login_count'; + $subQuery = M('user_play_data_count', 'tab_')->alias('uc') + ->field($field) + ->join('left join tab_user_play_info as ui on ui.user_id = uc.user_id and ui.game_id = uc.game_id and ui.server_id = uc.server_id and ui.role_id = uc.role_id') + ->where($map) + ->group('uc.role_id,uc.server_id,uc.game_id') + ->buildSql(); $roles = M()->alias('record') ->table($subQuery) ->select(); - $total = []; - $total = M('user_play_data_count', 'tab_')->alias('uc') - ->field($fieldUC) - ->join('left join tab_user_play_info as ui on ui.game_id = uc.game_id and ui.server_id = uc.server_id and ui.role_id = uc.role_id') - ->where($map) - ->find(); + $totalQuery = M('user_play_data_count', 'tab_')->alias('uc') + ->field($fieldUC) + ->join('left join tab_user_play_info as ui on ui.user_id = uc.user_id and ui.game_id = uc.game_id and uc.server_id = ui.server_id and ui.role_id = uc.role_id') + ->group('uc.role_id,uc.game_id,uc.server_id,uc.user_id') + ->where($map) + ->buildSql(); + $total = M()->alias('totals') + ->table($totalQuery) + ->field('sum(recharge_cost) recharge_cost,sum(recharge_count) recharge_count,sum(recharge_cost_today) as recharge_cost_today') + ->find(); + $userIds = array_column($roles, 'user_id'); + $userIds = $userIds ?? [-1]; + $users = M('user', 'tab_')->where(array('id' => ['in', $userIds]))->getField('id, account', true); $csvFileName = $xlsName.'.csv'; //设置好告诉浏览器要下载excel文件的headers header('Content-Description: File Transfer'); @@ -3247,6 +3255,9 @@ class DownloadController extends BaseController { ->limit(($i-1)*$perSize ,$perSize) ->select(); foreach($data as $key => $value) { + if (empty($value['user_account']) ) { + $value['user_account'] = $users[$value['user_id']] ?? ''; + } $csvData['user_account'] = empty($value['user_account']) ? '--' : encryption($value['user_account']); $csvData['game_name'] = empty($value['game_name']) ? '--' :$value['game_name']; $csvData['server_name'] = empty($value['server_name']) ? '--' :$value['server_name'];