Ejemplo n.º 1
0
 /**
  *
  * 获取时间段内流失率数据
  *
  * @Member public 
  * @author jerry
  * @copyright rockhippo
  * @param -
  * @return -
  *
  */
 public function getLossrate($miketime)
 {
     $PSys_MemberRule = new PSys_MemberRule();
     $sweek1 = $miketime - 7 * 86400;
     $eweek1 = $miketime - 1;
     $sweek2 = $miketime - 14 * 86400;
     $eweek2 = $miketime - 7 * 86400 - 1;
     $smonth1 = $miketime - 30 * 86400;
     $emonth1 = $miketime - 1;
     $smonth2 = $miketime - 60 * 86400;
     $emonth2 = $miketime - 30 * 86400 - 1;
     $weeksql1 = "SELECT DISTINCT client FROM rhc_game_platform WHERE create_time BETWEEN {$sweek1} AND {$eweek1} AND type = 1";
     $weeksql2 = "SELECT DISTINCT client FROM rhc_game_platform WHERE create_time BETWEEN {$sweek2} AND {$eweek2} AND type = 1";
     $monthsql1 = "SELECT DISTINCT client FROM rhc_game_platform WHERE create_time BETWEEN {$smonth1} AND {$emonth1} AND type = 1";
     $monthsql2 = "SELECT DISTINCT client FROM rhc_game_platform WHERE create_time BETWEEN {$smonth2} AND {$emonth2} AND type = 1";
     $rtArr = $week1 = $week2 = $month1 = $month2 = array();
     $wkRs1 = $PSys_MemberRule->rateQuery($weeksql1);
     $wkRs2 = $PSys_MemberRule->rateQuery($weeksql2);
     $monRs1 = $PSys_MemberRule->rateQuery($monthsql1);
     $monRs2 = $PSys_MemberRule->rateQuery($monthsql2);
     foreach ($wkRs1 as $k => $v) {
         $week1[$k] = strtoupper($v['client']);
     }
     foreach ($wkRs2 as $k => $v) {
         $week2[$k] = strtoupper($v['client']);
     }
     foreach ($monRs1 as $k => $v) {
         $month1[$k] = strtoupper($v['client']);
     }
     foreach ($monRs2 as $k => $v) {
         $month2[$k] = strtoupper($v['client']);
     }
     $rtnWeek = $rtnMonth = 0;
     foreach ($week2 as $v) {
         if (in_array($v, $week1)) {
             $rtnWeek++;
         }
     }
     foreach ($month2 as $v) {
         if (in_array($v, $month1)) {
             $rtnMonth++;
         }
     }
     $rtArr['weeknums'] = count($week2);
     $rtArr['weekloss'] = count($week2) - $rtnWeek;
     $rtArr['wklossrate'] = $rtArr['weeknums'] ? round($rtArr['weekloss'] / $rtArr['weeknums'] * 100, 2) : 0;
     $rtArr['monthnums'] = count($month2);
     $rtArr['monthloss'] = count($month2) - $rtnMonth;
     $rtArr['monlossrate'] = $rtArr['monthnums'] ? round($rtArr['monthloss'] / $rtArr['monthnums'] * 100, 2) : 0;
     return $rtArr;
 }
Ejemplo n.º 2
0
 /**
  *
  * @do ajax 获取浏览数据
  *
  * @pageview public 
  * @author jerry
  * @copyright rockhippo
  * @param -
  * @return html
  *
  */
 public function ajaxOtherHtmlAction()
 {
     $start = reqstr("start", "");
     $end = reqstr("end", "");
     $PSys_PageviewModel = new PSys_PageviewModel();
     $PSys_PageviewRule = new PSys_PageviewRule();
     $PSys_GameRule = new PSys_GameRule();
     $PSys_MemberRule = new PSys_MemberRule();
     $where["day_>="] = $start;
     $where["day_<="] = $end;
     $order = "day ASC";
     $result = $PSys_PageviewModel->GetList($where, $order, 0, 0, "*");
     $total_start_times = $total_wifi = $total_nowifi = $total_download = $total_reg = $total_page_views = 0;
     foreach ($result["allrow"] as $k => $v) {
         $total_start_times += intval($v["start_times"]);
         $sql = 'SELECT count(client) AS "wifi" FROM rhc_game_platform WHERE type = 1 AND station_id > 0 AND cday = ' . date('Ymd', strtotime($v['day']));
         $rs = $PSys_PageviewRule->tempQuery($sql);
         $result["allrow"][$k]['wifi'] = $rs[0]['wifi'];
         $result["allrow"][$k]['nowifi'] = $v['start_times'] - $rs[0]['wifi'];
         $total_wifi += intval($result["allrow"][$k]['wifi']);
         $total_nowifi += intval($result["allrow"][$k]['nowifi']);
         $gameSql = 'SELECT count(id) as "dl_total" FROM rhc_game_platform WHERE type = 206 AND cday BETWEEN ' . date('Ymd', strtotime($v['day'])) . ' AND ' . date('Ymd', strtotime($v['day']));
         $gameRs = $PSys_GameRule->gameQuery($gameSql);
         $result["allrow"][$k]['download'] = $gameRs[0]['dl_total'];
         $total_download += intval($result["allrow"][$k]['download']);
         $regSql = 'SELECT count(id) as "reg" FROM rhi_account WHERE regfrom = 2 AND regtime BETWEEN ' . strtotime($v['day']) . ' AND ' . (strtotime($v['day']) + 86400 - 1);
         $regRs = $PSys_MemberRule->regQuery($regSql);
         $result["allrow"][$k]['reg'] = $regRs[0]['reg'];
         $total_reg += intval($result["allrow"][$k]['reg']);
         $total_page_views += intval($v["page_views"]);
     }
     $this->smarty->assign("total_start_times", $total_start_times);
     $this->smarty->assign("total_page_views", $total_page_views);
     $this->smarty->assign("total_wifi", $total_wifi);
     $this->smarty->assign("total_nowifi", $total_nowifi);
     $this->smarty->assign("total_download", $total_download);
     $this->smarty->assign("total_reg", $total_reg);
     $this->smarty->assign("data", $result["allrow"]);
     $this->forward = "ajaxOther";
 }