diff --git a/Application/Home/Controller/QueryController.class.php b/Application/Home/Controller/QueryController.class.php index 59a8a44dd..03ae7f629 100644 --- a/Application/Home/Controller/QueryController.class.php +++ b/Application/Home/Controller/QueryController.class.php @@ -642,8 +642,9 @@ class QueryController extends BaseController $dayList = []; do { $dayList[] = date('Y-m-d', $beginTime); - $beginTime += 24*60*60; - } while($beginTime < $endTime); + $beginTime += 24 * 60 * 60; + } while ($beginTime < $endTime); + return $dayList; } @@ -651,7 +652,8 @@ class QueryController extends BaseController { $this->meta_title = 'ARPU统计'; - $defaultTime = date('Y-m-d', time() - 7*24*3600) . ' 至 ' . date('Y-m-d'); + $defaultTime = date('Y-m-d', time() - 7 * 24 * 3600) . ' 至 ' . date('Y-m-d'); + $defaultTime = date('Y-m-d', time() - 7 * 24 * 3600) . ' 至 ' . date('Y-m-d'); $time = I('time', $defaultTime); $sdkVersion = I('sdk_version', 0); @@ -686,7 +688,7 @@ class QueryController extends BaseController $timeout = 0; $records = []; - if (intval($endTime - $beginTime)/(24*3600) <= 30) { + if (intval($endTime - $beginTime) / (24 * 3600) <= 30) { $userRepository = new UserRepository(); $spendRepository = new SpendRepository(); $payGameCountList = $spendRepository->getPayGameCountByDay($params); @@ -697,22 +699,22 @@ class QueryController extends BaseController $historyPayCountList = $spendRepository->getHistoryPayCountByDay($params); $loginCountList = $userRepository->getLoginCountByDay($params); $registerCountList = $userRepository->getRegisterCountByDay($params); - + foreach ($dayList as $day) { $records[] = [ 'day' => $day, 'payGameCount' => $payGameCountList[$day], 'payUserCount' => $payUserCountList[$day], 'newPayUserCount' => $newPayUserCountList[$day], - 'payAmount' => number_format($payAmountList[$day], 2), + 'payAmount' => number_format($payAmountList[$day], 2), 'newPayAmount' => number_format($newPayAmountList[$day], 2), 'historyPayCount' => $historyPayCountList[$day], 'loginCount' => $loginCountList[$day], 'registerCount' => $registerCountList[$day], - 'payRate' => $loginCountList[$day] == 0 ? '--' : round($payUserCountList[$day]/$loginCountList[$day]*100, 2) . '%', + 'payRate' => $loginCountList[$day] == 0 ? '--' : round($payUserCountList[$day] / $loginCountList[$day] * 100, 2) . '%', 'ratentionOneDay' => '--', - 'arpu' => $loginCountList[$day] == 0 ? '0.00' : number_format(round($payAmountList[$day]/$loginCountList[$day], 2), 2), - 'arppu' => $payUserCountList[$day] == 0 ? '0.00' : number_format(round($payAmountList[$day]/$payUserCountList[$day], 2), 2), + 'arpu' => $loginCountList[$day] == 0 ? '0.00' : number_format(round($payAmountList[$day] / $loginCountList[$day], 2), 2), + 'arppu' => $payUserCountList[$day] == 0 ? '0.00' : number_format(round($payAmountList[$day] / $payUserCountList[$day], 2), 2), ]; } } else { @@ -1055,11 +1057,12 @@ class QueryController extends BaseController ->where($map) ->order('play_time desc') ->count();//创角数 - $list['user_num'] = $userPlayInfoModel + $list['user_num'] = count($userPlayInfoModel ->join($join) ->where($userPlayInfoWhere) ->where($map) - ->count('distinct tab_user_play_info.user_id');//创角用户 + ->group('tab_user_play_info.game_id,tab_user_play_info.user_id') + ->select());//创角用户 $newUserNumData = $userPlayInfoModel ->field('tab_user_play_info.create_time,count(distinct tab_user_play_info.user_id) as num') @@ -1085,17 +1088,19 @@ class QueryController extends BaseController ->find(); $list['new_ip_num'] = empty($newIpNumData['num']) ? 0 : $newIpNumData['num'];//新增创角IP - $list['login_user_num'] = M('UserGameLoginRecord', 'tab_') + $list['login_user_num'] = count(M('UserGameLoginRecord', 'tab_') ->join($join) ->where($userGameLoginWhere) ->where($map) - ->count('distinct tab_user_game_login_record.user_id');//登录用户数 - $list['spend_user_num'] = M('Spend', 'tab_') - ->field('tab_spend.id') + ->group('tab_user_game_login_record.game_id,tab_user_game_login_record.user_id') + ->select());//登录用户数 + + $list['spend_user_num'] = count(M('Spend', 'tab_') ->join($join) ->where($spendWhere) ->where($map) - ->count('distinct tab_spend.user_id');//充值人数 + ->group('tab_spend.game_id,tab_spend.user_id') + ->select());//充值人数 $list['spend_num'] = M('Spend', 'tab_') ->join($join) ->where($spendWhere) @@ -1274,6 +1279,7 @@ class QueryController extends BaseController $userGameLoginMap['tab_user_game_login_record.login_time'] = ['between', [$begTime, $endTime + 86399]]; $spendMap['tab_spend.pay_time'] = ['between', [$begTime, $endTime + 86399]]; + $spendMap['tab_spend.pay_status'] = 1; $spendMap2 = $spendMap; // $spendWhere['_string'] = 'tab_spend.game_id = tab_apply.game_id'; // $spendMap['_complex'] = $spendWhere; @@ -1319,7 +1325,13 @@ class QueryController extends BaseController $parameter['begtime'] = $initBegTime; $parameter['endtime'] = $initEndTime; - $allData = []; + $allData['spend_num'] = 0; + $allData['spend_all_amount'] = 0; + $allData['spend_cash'] = 0; + $allData['spend_generic'] = 0; + $allData['pay_amount'] = 0; + $allData['spend_discount'] = 0; + $allData['spend_voucher'] = 0; if (!empty($data)) { foreach ($data as &$list) { $userPlayInfoMap['tab_user_play_info.game_id'] = $list['game_id']; @@ -1389,36 +1401,18 @@ class QueryController extends BaseController ->where($spendMap) ->where(array('tab_spend.pay_way' => -1)) ->sum('tab_spend.pay_amount');//绑定币 - } - - $allData['spend_num'] = M('Spend', 'tab_') - ->where($spendMap2) - ->count();//充值次数 - $allData['spend_all_amount'] = M('Spend', 'tab_') - ->where($spendMap2) - ->sum('tab_spend.pay_amount');//充值总额 - $allData['spend_all_amount'] = empty($allData['spend_all_amount']) ? 0 : $allData['spend_all_amount']; - $allData['spend_cash'] = M('Spend', 'tab_') - ->where($spendMap2) - ->where(array('tab_spend.pay_way' => ['in', '1,2,3,4,5,6'])) - ->sum('tab_spend.pay_amount');//现金充值 - $allData['spend_cash'] = empty($allData['spend_cash']) ? 0 : $allData['spend_cash']; + $list['spend_discount'] = 0;//折扣币 + $list['spend_voucher'] = 0;//代金券 - $allData['spend_generic'] = M('Spend', 'tab_') - ->where($spendMap2) - ->where(array('tab_spend.pay_way' => 0)) - ->sum('tab_spend.pay_amount');//通用币 - $allData['spend_generic'] = empty($allData['spend_generic']) ? 0 : $allData['spend_generic']; - - $allData['spend_binding'] = M('Spend', 'tab_') - ->where($spendMap2) - ->where(array('tab_spend.pay_way' => -1)) - ->sum('tab_spend.pay_amount');//绑定币 - $allData['spend_binding'] = empty($allData['spend_binding']) ? 0 : $allData['spend_binding']; - - $allData['spend_discount'] = 0;//折扣币 - $allData['spend_voucher'] = 0;//代金券 + $allData['spend_num'] += $list['spend_num']; + $allData['spend_all_amount'] += $list['spend_all_amount']; + $allData['spend_cash'] += $list['spend_cash']; + $allData['spend_generic'] += $list['spend_generic']; + $allData['spend_binding'] += $list['spend_binding']; + $allData['spend_discount'] += $list['spend_discount']; + $allData['spend_voucher'] += $list['spend_voucher']; + } } $serverData = $this->getServer(I('relation_game_id'), I('sdk_version')); @@ -2010,7 +2004,7 @@ class QueryController extends BaseController $gameId = I('game_id', 0); $serverId = I('server_id', 0); $parentId = I('parent_id', 0); - + $loginPromote = $this->getLoginPromote(); $promote = null; @@ -2021,7 +2015,7 @@ class QueryController extends BaseController } $games = $this->getGamesByPromote($promote); - + $subPromotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promote['id']])->select(); $query = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promote['id']]); @@ -2053,8 +2047,7 @@ class QueryController extends BaseController list($beginTime, $endTime) = $this->getBetweenTime($time); $params['begin_time'] = $beginTime; $params['end_time'] = $endTime; - - + $promoteRepository = new PromoteRepository(); $createRoleCountList = $promoteRepository->getCreateRoleCountByIds($ids, $params); $createRoleUserCountList = $promoteRepository->getCreateRoleUserCountByIds($ids, $params);