OnlineModel::checkOnline PHP Méthode

checkOnline() public méthode

在线用户检查及入库
public checkOnline ( )
    public function checkOnline()
    {
        $startTime = time() - $this->stats_step;
        $day = date('Y-m-d');
        // 今日统计数据
        $sql = 'SELECT * FROM ' . C('DB_PREFIX') . "online_stats WHERE day ='{$day}'";
        $dayData = $this->odb->query($sql);
        if (!empty($dayData)) {
            // 在线注册用户
            $sql = 'SELECT COUNT(1) AS pu FROM ' . C('DB_PREFIX') . "online WHERE uid !=0 AND activeTime  >= {$startTime}";
            $onlineData = $this->odb->query($sql);
            $set = array();
            if ($onlineData && $onlineData[0]['pu'] > 0 && $onlineData[0]['pu'] > $dayData[0]['most_online_users']) {
                $set[] = 'most_online_users = ' . $onlineData[0]['pu'];
            }
            // 在线游客
            $sql = 'SELECT COUNT(ip) AS pu FROM ' . C('DB_PREFIX') . "online WHERE uid = 0 AND activeTime >= {$startTime}";
            $onlineGuestData = $this->odb->query($sql);
            if ($onlineGuestData && $onlineGuestData[0]['pu'] > 0 && $onlineGuestData[0]['pu'] > $dayData[0]['most_online_guests']) {
                $set[] = ' most_online_guests = ' . $onlineGuestData[0]['pu'];
            }
            $mostUser = intval($onlineData[0]['pu']) + intval($onlineGuestData[0]['pu']);
            if (empty($mostUser)) {
                $mostUser = 1;
            }
            if ($mostUser > $dayData[0]['most_online']) {
                $set[] = ' most_online = ' . $mostUser;
                $set[] = ' most_online_time  =' . time();
            }
            if (!empty($set)) {
                $sql = ' UPDATE ' . C('DB_PREFIX') . 'online_stats SET ' . implode(',', $set) . " WHERE day = '{$day}'";
                $this->odb->execute($sql);
            }
        }
    }