|
- owner_common = $redis_cache.hgetall("v2-owner-common:#{item[0]}")
- deleted_data = $redis_cache.smembers("v2-project-rank-deleted")
- $redis_cache.zrem("v2-user-project-rank:#{item[0]}", deleted_data) unless deleted_data.blank?
- popular_project = $redis_cache.zrevrange("v2-user-project-rank:#{item[0]}", 0, 1, withscores: true)[0]
- json.id item[0]
- json.score item[1]
- json.name owner_common["name"]
- json.type owner_common["type"]
- json.login owner_common["login"]
- if owner_common["tmp_projects"].nil?
- normal_projects = Project.members_projects(item[0]).to_sql
- org_projects = Project.joins(team_projects: [team: :team_users]).where(team_users: {user_id: item[0]}).to_sql
- issue_project = Project.joins(:issues).where(issues: {author_id: item[0]}).to_sql
- pull_project = Project.joins(:pull_requests).where(pull_requests: {user_id: item[0]}).to_sql
- commit_project = Project.joins(:commit_logs).where(commit_logs: {user_id: item[0]}).to_sql
- project_count = Project.from("( #{normal_projects} UNION #{org_projects} UNION #{issue_project} UNION #{pull_project} UNION #{issue_project} ) AS projects").distinct.size
-
- $redis_cache.hset("v2-owner-common:#{item[0]}", 'tmp_projects', project_count)
- json.projects_count project_count
- else
- json.projects_count owner_common["tmp_projects"]
- end
- json.avatar_url owner_common["avatar_url"]
- if popular_project.blank?
- json.project nil
- else
- popular_project_common = $redis_cache.hgetall("v2-project-common:#{popular_project[0]}")
- if popular_project_common["owner_id"].to_s == item[0].to_s
- json.project do
- json.id popular_project[0]
- json.name popular_project_common["name"]
- json.identifier popular_project_common["identifier"]
- json.description popular_project_common["description"]
- end
- else
- # owner changed remove rank
- $redis_cache.zrem("v2-user-project-rank:#{item[0]}", popular_project[0])
- json.project nil
- end
- end
-
- ids = $redis_cache.zrevrange("v2-user-project-rank:#{item[0]}", 0, 999, withscores: true).map{|a|a[0]}
- visits = 0
- forks = 0
- watchers = 0
- praises = 0
- issues = 0
- pulls = 0
- commits = 0
- issues = 0
- ids.each do |pid|
- project_common = $redis_cache.hgetall("v2-project-common:#{pid}")
- visits = visits + project_common["visits"].to_i
- forks = forks + project_common["forks"].to_i
- watchers = watchers + project_common["watchers"].to_i
- praises = praises + project_common["praises"].to_i
- issues = issues + project_common["issues"].to_i
- pulls = pulls + project_common["pullrequests"].to_i
- commits = commits + project_common["commits"].to_i
- issues = issues + project_common["issues"].to_i
- end
-
- json.visits visits
- json.forks forks
- json.watchers watchers
- json.praises praises
- json.issues issues
- json.pulls pulls
- json.commits commits
- json.issues issues
|