| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347 |
- <?php
- /**
- * 留存统计 - 区服渠道
- */
- namespace app\admin\controller;
- use app\service\RetaineService;
- use think\Cache;
- use think\Controller;
- use think\Db;
- use think\Exception;
- use think\Model;
- class RetaineServerChannel extends Controller
- {
- /**
- * 玩家总数
- *
- * @return string
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function reg_total()
- {
- //TODO: 执行脚本时间过长问题
- set_time_limit(0); // PHP脚本最多运行300秒,0表示不限制(慎用)
- ini_set('max_execution_time', 0);
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $retaineService = new RetaineService();
- $list = $retaineService->regNumNew($day, 0, 1,1, 0, 'reg_total');
- $retaineService->insertOrUpdateServerv2($list, 2, $day, 'reg_total');
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-新增玩家
- * @return string
- */
- public function reg_num()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $retaineService = new RetaineService();
- //当天注册账号
- $mebmers = $retaineService->getMembers($day);
- $list = $retaineService->regNumNew($day, $mebmers, 1,1);
- $retaineService->insertOrUpdateServer($list, 2, $day, 'reg_num');
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-新增角色
- * @return string
- */
- public function role_num()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $retaineService = new RetaineService();
- //当天新增角色
- $list = $retaineService->getFirstRoleMember($day, 1,1);
- $retaineService->insertOrUpdateServer($list, 2, $day, 'role_num');
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-活跃玩家
- * @return string
- */
- public function act_num()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $retaineService = new RetaineService();
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'act_num', 1,1);
- $retaineService->insertOrUpdateServerv2($list, 2, $day, 'act_num');
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-充值金额-付费人数
- * @return string
- */
- public function recharge_num()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $retaineService = new RetaineService();
- //充值金额
- $list = $retaineService->rechargeMoney($day, 1,1);
- $retaineService->insertOrUpdateServer($list, 2, $day, 'recharge_num');
- $retaineService->insertOrUpdateServer($list, 2, $day, 'pay_num');
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-次留
- * @return string
- */
- public function one_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 1);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members){
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'one_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'one_stay');
- }
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-三留
- * @return string
- */
- public function three_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 2);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members) {
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'three_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'three_stay');
- }
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-四留
- * @return string
- */
- public function four_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 3);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members) {
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'four_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'four_stay');
- }
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-五留
- * @return string
- */
- public function five_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 4);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members) {
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'five_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'five_stay');
- }
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-六留
- * @return string
- */
- public function six_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 5);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members) {
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'six_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'six_stay');
- }
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-七留
- * @return string
- */
- public function seven_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 6);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members) {
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'seven_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'seven_stay');
- }
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-十五留
- * @return string
- */
- public function fifteen_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 14);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members) {
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'fifteen_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'fifteen_stay');
- }
- return 'ok';
- }
- /**
- * 留存表-游戏-区服-三十留
- * @return string
- */
- public function thirty_stay()
- {
- $day = input('day', '');
- if (!$day) {
- $day = date('Y-m-d', strtotime('-1 day'));
- }
- $handleTime = $this->getTime($day, 29);
- $retaineService = new RetaineService();
- //那天创角用户数
- $members = $retaineService->getFirstRoleMemberList($handleTime);
- if($members) {
- //当天活跃玩家
- $list = $retaineService->activeMember($day, 'thirty_stay', 1, 1, $members);
- $retaineService->insertOrUpdateServer($list, 2, $handleTime, 'thirty_stay');
- }
- return 'ok';
- }
- private function getTime($day, $num)
- {
- return date('Y-m-d', strtotime($day) - 86400 * $num);
- }
- }
|