regNumNew($day,0,0,1, 0, 'reg_total'); $list = $retaineService->regNumV2($day,1,0, 'reg_total'); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $day]) ->update(['update_time' => time(), 'reg_total' => 0]); // $retaineService->insertOrUpdatev2($list, 2, $day, 'reg_total'); $retaineService->syncGameStatData($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, 0, 1); $list = $retaineService->regNumV2($day, 1, 0, 'reg_num'); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $day]) ->update(['update_time' => time(), 'reg_num' => 0]); // $retaineService->insertOrUpdatev2($list, 2, $day, 'reg_num'); $retaineService->syncGameStatData($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, 0, 1, 0, 'role_num'); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $day]) ->update(['update_time' => time(), 'role_num' => 0]); // $retaineService->insertOrUpdatev2($list, 2, $day, 'role_num'); $retaineService->syncGameStatData($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', 0, 1); $list = $retaineService->activeMemberV2($day, 'act_num', 1); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $day]) ->update(['update_time' => time(), 'act_num' => 0]); // $retaineService->insertOrUpdatev2($list, 2, $day, 'act_num'); $retaineService->syncGameStatData($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, 0, 1); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $day]) ->update(['update_time' => time(), 'recharge_num' => 0, 'pay_num' => 0]); // $retaineService->insertOrUpdatev2($list, 2, $day, 'pay_num'); $retaineService->syncGameStatData($list, 2, $day, 'pay_num'); // $retaineService->insertOrUpdatev2($list, 2, $day, 'recharge_num'); $retaineService->syncGameStatData($list, 2, $day, 'recharge_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(); //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'one_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $handleTime]) ->update(['update_time' => time(), 'one_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'one_stay'); $retaineService->syncGameStatData($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(); //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'three_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $handleTime]) ->update(['update_time' => time(), 'three_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'three_stay'); $retaineService->syncGameStatData($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(); //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'four_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $handleTime]) ->update(['update_time' => time(), 'four_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'four_stay'); $retaineService->syncGameStatData($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->getSubIds($handleTime); if ($members) { //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'five_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $handleTime]) ->update(['update_time' => time(), 'five_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'five_stay'); $retaineService->syncGameStatData($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(); //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'six_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); // 清除当天数据 Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $handleTime]) ->update(['update_time' => time(), 'six_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'six_stay'); $retaineService->syncGameStatData($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(); //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'seven_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $handleTime]) ->update(['update_time' => time(), 'seven_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'seven_stay'); $retaineService->syncGameStatData($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(); //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'fifteen_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); Db::table('cy_retaine_game') ->where(['type_id' => 2, 'day' => $handleTime]) ->update(['update_time' => time(), 'fifteen_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'fifteen_stay'); $retaineService->syncGameStatData($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(); //当天活跃玩家 $list = $retaineService->activeMemberV2($day, 'thirty_stay', 1, [], "", ['reg_time' => ['between time', [strtotime($handleTime), strtotime($handleTime . ' 23:59:59')]]]); Db::table('cy_retaine_game')->where(['type_id' => 2, 'day' => $handleTime])->update(['update_time' => time(), 'thirty_stay' => 0]); // $retaineService->insertOrUpdate($list, 2, $handleTime, 'thirty_stay'); $retaineService->syncGameStatData($list, 2, $handleTime, 'thirty_stay'); return 'ok'; } private function getTime($day, $num) { return date('Y-m-d', strtotime($day) - 86400 * $num); } // 新活跃玩家 public function new_act_num(){ $day = input('day', ''); if (!$day) { $day = date('Y-m-d', strtotime('-1 day')); } $retaineService = new RetaineService(); // $members = $retaineService->getMembers($day); // ['ns.create_time' => ['between', [strtotime($day), strtotime($day . ' 23:59:59')]]] $list = $retaineService->activeMemberV2($day, 'new_act_num', 1, [], "", ['ns.create_time' => ['between time', [strtotime($day), strtotime($day . ' 23:59:59')]]]); // dump($list); Db::table('cy_retaine_game')->where(['type_id' => 2, 'day' => $day])->update(['update_time' => time(), 'new_act_num' => 0]); // $retaineService->insertOrUpdate($list, 2, $day, 'new_act_num'); $retaineService->syncGameStatData($list, 2, $day, 'new_act_num'); return 'ok'; } // 新付费玩家+新玩家付费金额 public function new_recharge_num(){ $day = input('day', ''); if (!$day) { $day = date('Y-m-d', strtotime('-1 day')); } $retaineService = new RetaineService(); $members = $retaineService->getMembers($day); $list = $retaineService->rechargeMoney($day, 0, 1, 0, $members, ['new_pay_num', 'new_recharge_num']); // dump($list); Db::table('cy_retaine_game')->where(['type_id' => 2, 'day' => $day])->update(['update_time' => time(), 'new_pay_num' => 0, 'new_recharge_num' => 0]); // $retaineService->insertOrUpdatev2($list, 2, $day, 'new_pay_num'); $retaineService->syncGameStatData($list, 2, $day, 'new_pay_num'); // $retaineService->insertOrUpdatev2($list, 2, $day, 'new_recharge_num'); $retaineService->syncGameStatData($list, 2, $day, 'new_recharge_num'); return 'ok'; } }