class Analytics::FetchMainGatherData

Fetch main visitor data

Public Class Methods

new(site_id) click to toggle source
# File lib/analytics.rb, line 79
def initialize(site_id)
    @site_id = site_id
    @client = Analytics.client
    @stmt = Analytics.stmt
end

Public Instance Methods

gatherDayVisitor() click to toggle source

gather visitor day data

# File lib/analytics.rb, line 85
def gatherDayVisitor
    now,yesterday_start,yesterday_end = Util.day_query_time
    pv = @client.query("select count(id) from visitors where site_id=#{@site_id} and created_at > #{yesterday_start} and created_at < #{yesterday_end}").fetch_row[0]
    ipv = @client.query("select count(distinct ip_id) from visitors where site_id=#{@site_id} and created_at > #{yesterday_start} and created_at < #{yesterday_end}").fetch_row[0]
    r = @client.query("select count(id) from site_day_gather where site_id=#{@site_id} and day_time=#{yesterday_start}").fetch_row[0].to_i
    if(r == 0)
        @stmt.prepare("insert into site_day_gather(site_id,pv,ipv,day_time,created_at) "+
                        " values(?,?,?,?,?)" )
        @stmt.execute(@site_id,pv,ipv,yesterday_start,now)
    else
        @stmt.prepare("update site_day_gather set pv=?,ipv=?,created_at=? where site_id=? and day_time=?")
        @stmt.execute(pv,ipv,now,@site_id,yesterday_start)
    end
end
gatherDicDayVisitor(gather_table,col) click to toggle source

gather dictionary day visitor data

# File lib/analytics.rb, line 116
def gatherDicDayVisitor gather_table,col

    #get query timestamp
    now,yesterday_start,yesterday_end = Util.day_query_time

    @client.query("select count(id),#{col} from visitors where site_id=#{@site_id} and created_at > #{yesterday_start} and created_at < #{yesterday_end} group by #{col}").each{|row|


    r = @client.query("select count(id) from #{gather_table} where site_id=#{@site_id} and day_time=#{yesterday_start} and #{col}=#{row[1]}").fetch_row[0].to_i
    if(r == 0 )
        @stmt.prepare("insert into #{gather_table}(site_id,pv,day_time,created_at,#{col}) "+
                      " values(?,?,?,?,?)" )
        @stmt.execute(@site_id,row[0],yesterday_start,now,row[1])
    else
        @stmt.prepare("update #{gather_table} set pv=?,created_at=? where site_id=? and day_time=? and #{col}=?")
        @stmt.execute(row[0],now,@site_id,yesterday_start,row[1])
    end
    }
end
gatherHourVisitor() click to toggle source

gather visitor hour data

# File lib/analytics.rb, line 100
def gatherHourVisitor
    now,last_hour_start,last_hour_end = Util.hour_query_time
    pv = @client.query("select count(id) from visitors where site_id=#{@site_id} and created_at >= #{last_hour_start} and created_at <= #{last_hour_end}").fetch_row[0]
    ipv = @client.query("select count(distinct ip_id) from visitors where site_id=#{@site_id} and created_at >= #{last_hour_start} and created_at <= #{last_hour_end}").fetch_row[0]

    r = @client.query("select count(id) from site_hour_gather where site_id=#{@site_id} and hour_time=#{last_hour_start}").fetch_row[0].to_i
    if(r == 0)
        @stmt.prepare("insert into site_hour_gather(site_id,pv,ipv,hour_time,created_at) "+
                        " values(?,?,?,?,?)" )
        @stmt.execute(@site_id,pv,ipv,last_hour_start,now)
    else
        @stmt.prepare("update site_hour_gather set pv=?,ipv=?,created_at=? where site_id=? and hour_time=?")
        @stmt.execute(pv,ipv,now,@site_id,last_hour_start)
    end
end