2012-02-14 16:32:20 +00:00
|
|
|
class Tag
|
|
|
|
include Mongoid::Document
|
|
|
|
include Mongoid::Timestamps
|
2012-07-30 03:59:20 +00:00
|
|
|
include Impressionist::Impressionable
|
2012-02-14 16:32:20 +00:00
|
|
|
|
2012-07-30 03:59:20 +00:00
|
|
|
is_impressionable :counter_cache => { :column_name => :view_count }
|
2012-07-30 09:57:55 +00:00
|
|
|
|
2012-05-08 09:27:42 +00:00
|
|
|
field :key
|
2012-07-30 09:57:55 +00:00
|
|
|
field :view_count, :type => Integer, :default => 0
|
2012-07-30 03:59:20 +00:00
|
|
|
#field :cloud_amper,:type: Integer,:default=> 0
|
2012-02-14 16:32:20 +00:00
|
|
|
belongs_to :module_app
|
|
|
|
|
2012-07-30 03:59:20 +00:00
|
|
|
def cloud_amper
|
2012-08-01 10:15:10 +00:00
|
|
|
for_now = {:start_at=>14.days.ago,:end_at=>Time.now}
|
|
|
|
for_yesterday = {:start_at=>15.days.ago,:end_at=>1.days.ago}
|
2012-07-30 03:59:20 +00:00
|
|
|
|
2012-07-31 03:57:32 +00:00
|
|
|
|
2012-07-30 03:59:20 +00:00
|
|
|
range = self.class.all.collect{ |tag|
|
2012-08-01 10:15:10 +00:00
|
|
|
get_impressionist(tag)
|
2012-07-30 03:59:20 +00:00
|
|
|
}
|
2012-07-31 03:57:32 +00:00
|
|
|
range.sort!.reverse!.uniq!
|
|
|
|
offset_size = range.size+4
|
2012-08-01 10:15:10 +00:00
|
|
|
section_3 = range.first..range[(offset_size/4)]
|
|
|
|
section_2 = range[(offset_size/4)+1]..range[2*(offset_size/4)] rescue nil
|
|
|
|
section_1 = range[2*(offset_size/4)+1]..last rescue nil
|
2012-07-31 03:57:32 +00:00
|
|
|
|
|
|
|
|
2012-08-01 10:15:10 +00:00
|
|
|
case get_impressionist
|
2012-07-31 03:57:32 +00:00
|
|
|
when range.first
|
2012-08-01 10:15:10 +00:00
|
|
|
return :hot1
|
2012-07-31 03:57:32 +00:00
|
|
|
when section_1
|
2012-08-01 10:15:10 +00:00
|
|
|
return :hot2
|
2012-07-31 03:57:32 +00:00
|
|
|
when section_2
|
2012-08-01 10:15:10 +00:00
|
|
|
return :hot3
|
2012-07-31 03:57:32 +00:00
|
|
|
when section_3
|
2012-08-01 10:15:10 +00:00
|
|
|
return :hot4
|
2012-07-31 03:57:32 +00:00
|
|
|
end
|
|
|
|
|
2012-07-30 03:59:20 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
protected
|
2012-08-01 10:15:10 +00:00
|
|
|
def get_impressionist(item_tag = self)
|
|
|
|
item_tag.impressions.where(:created_at.gte=> 14.days.ago,:created_at.lte => Time.now).count
|
2012-07-30 03:59:20 +00:00
|
|
|
end
|
|
|
|
|
2012-02-14 16:32:20 +00:00
|
|
|
end
|