mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-03 03:40:49 +08:00
更改:项目排行榜查询丰富
This commit is contained in:
@@ -1,16 +1,77 @@
|
||||
class Admins::ProjectsRankController < Admins::BaseController
|
||||
|
||||
before_action :get_timeable_key_names, only:[:index]
|
||||
def index
|
||||
@rank_date = rank_date
|
||||
deleted_data = $redis_cache.smembers("v2-project-rank-deleted")
|
||||
$redis_cache.zrem("v2-project-rank-#{rank_date}", deleted_data) unless deleted_data.blank?
|
||||
@date_rank = $redis_cache.zrevrange("v2-project-rank-#{rank_date}", 0, -1, withscores: true)
|
||||
puts @names_array
|
||||
unless @names_array.blank?
|
||||
$redis_cache.zunionstore("admin-days-project-rank", @names_array)
|
||||
deleted_data = $redis_cache.smembers("v2-project-rank-deleted")
|
||||
$redis_cache.zrem("admin-days-project-rank", deleted_data) unless deleted_data.blank?
|
||||
@date_rank = $redis_cache.zrevrange("admin-days-project-rank", 0, -1, withscores: true)
|
||||
@date_rank = @date_rank.map do |i|
|
||||
visits = 0
|
||||
watchers = 0
|
||||
praises = 0
|
||||
forks = 0
|
||||
issues = 0
|
||||
pullrequests = 0
|
||||
commits = 0
|
||||
(begin_date..end_date).to_a.each do |d|
|
||||
result = $redis_cache.hgetall("v2-project-statistic:#{i[0]}-#{d}")
|
||||
visits += result["visits"].to_i
|
||||
watchers += result["watchers"].to_i
|
||||
praises += result["praises"].to_i
|
||||
forks += result["forks"].to_i
|
||||
issues += result["issues"].to_i
|
||||
pullrequests += result["pullrequests"].to_i
|
||||
commits += result["commits"].to_i
|
||||
end
|
||||
i + [visits,watchers,praises,forks,issues,pullrequests,commits]
|
||||
end
|
||||
case params[:sort_by]
|
||||
when 'visits'
|
||||
@date_rank = @date_rank.sort{|i| i[2]}
|
||||
when 'watchers'
|
||||
@date_rank = @date_rank.sort{|i| i[3]}
|
||||
when 'praises'
|
||||
@date_rank = @date_rank.sort{|i| i[4]}
|
||||
when 'forks'
|
||||
@date_rank = @date_rank.sort{|i| i[5]}
|
||||
when 'issues'
|
||||
@date_rank = @date_rank.sort{|i| i[6]}
|
||||
when 'pullrequests'
|
||||
@date_rank = @date_rank.sort{|i| i[7]}
|
||||
when 'commits'
|
||||
@date_rank = @date_rank.sort{|i| i[8]}
|
||||
else
|
||||
@date_rank = @date_rank.sort{|i| i[1]}
|
||||
end
|
||||
if params[:sort_direction].blank? || params[:sort_direction].to_s.downcase == "desc"
|
||||
@date_rank = @date_rank.reverse
|
||||
end
|
||||
else
|
||||
@date_rank = []
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def rank_date
|
||||
params.fetch(:date, Date.today.to_s)
|
||||
def begin_date
|
||||
params.fetch(:begin_date, Date.today.to_s)
|
||||
end
|
||||
|
||||
def end_date
|
||||
params.fetch(:end_date, Date.today.to_s)
|
||||
end
|
||||
|
||||
def get_timeable_key_names
|
||||
begin
|
||||
@names_array = []
|
||||
(begin_date..end_date).to_a.each do |i|
|
||||
@names_array << "v2-project-rank-#{i}"
|
||||
end
|
||||
rescue
|
||||
@names_array = []
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user