mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-17 02:05:58 +08:00
add: user and platform cache
This commit is contained in:
@@ -85,19 +85,19 @@ class Users::StatisticsController < Users::BaseController
|
||||
for key in @project_languages_count.keys do
|
||||
@languages_percent[key] = (@project_languages_count[key].to_f / @project_languages_count.values.sum).round(2)
|
||||
end
|
||||
@platform_languages_percent = Hash.new
|
||||
for key in @platform_project_languages_count.keys do
|
||||
@platform_languages_percent[key] = (@platform_project_languages_count[key].to_f / @platform_project_languages_count.values.sum).round(2)
|
||||
end
|
||||
# @platform_languages_percent = Hash.new
|
||||
# for key in @platform_project_languages_count.keys do
|
||||
# @platform_languages_percent[key] = (@platform_project_languages_count[key].to_f / @platform_project_languages_count.values.sum).round(2)
|
||||
# end
|
||||
# 各门语言分数
|
||||
@each_language_score = Hash.new
|
||||
for key in @project_languages_count.keys do
|
||||
@each_language_score[key] = (60.0 + @project_languages_count[key] / (@project_languages_count[key] + 5.0) * 40.0).to_i
|
||||
end
|
||||
@platform_each_language_score = Hash.new
|
||||
for key in @platform_project_languages_count.keys do
|
||||
@platform_each_language_score[key] = (60.0 + @platform_project_languages_count[key] / (@platform_project_languages_count[key] + 5.0) * 40.0).to_i
|
||||
end
|
||||
# @platform_each_language_score = Hash.new
|
||||
# for key in @platform_project_languages_count.keys do
|
||||
# @platform_each_language_score[key] = (60.0 + @platform_project_languages_count[key] / (@platform_project_languages_count[key] + 5.0) * 40.0).to_i
|
||||
# end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -164,124 +164,54 @@ class Users::StatisticsController < Users::BaseController
|
||||
def preload_develop_data
|
||||
if params[:start_time].present? && params[:end_time].present?
|
||||
# 用户被follow数量
|
||||
@follow_count = Rails.cache.fetch("user-follow-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Watcher.where(watchable: observed_user).maximum('created_at').to_i}") do
|
||||
time_filter(Watcher.where(watchable: observed_user), 'created_at').count
|
||||
end
|
||||
@platform_follow_count = Rails.cache.fetch("platform-follow-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Watcher.where(watchable_type: 'User').maximum('created_at').to_i}") do
|
||||
time_filter(Watcher.where(watchable_type: 'User'), 'created_at').count
|
||||
end
|
||||
@follow_count = time_filter(Watcher.where(watchable: observed_user), 'created_at').count
|
||||
@platform_follow_count = time_filter(Watcher.where(watchable_type: 'User'), 'created_at').count
|
||||
# 用户pr数量
|
||||
@pullrequest_count = Rails.cache.fetch("user-pullrequest-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{PullRequest.where(user_id: observed_user.id).maximum('created_at').to_i}") do
|
||||
time_filter(PullRequest.where(user_id: observed_user.id), 'created_at').count
|
||||
end
|
||||
@platform_pullrequest_count = Rails.cache.fetch("platform-pullrequest-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{PullRequest.maximum('created_at').to_i}") do
|
||||
time_filter(PullRequest, 'created_at').count
|
||||
end
|
||||
@pullrequest_count = time_filter(PullRequest.where(user_id: observed_user.id), 'created_at').count
|
||||
@platform_pullrequest_count = time_filter(PullRequest, 'created_at').count
|
||||
# 用户issue数量
|
||||
@issues_count = Rails.cache.fetch("user-issue-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Issue.where(author_id: observed_user.id).maximum('created_on').to_i}") do
|
||||
time_filter(Issue.where(author_id: observed_user.id), 'created_on').count
|
||||
end
|
||||
@platform_issues_count = Rails.cache.fetch("platform-issue-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Issue.maximum('created_on').to_i}") do
|
||||
time_filter(Issue, 'created_on').count
|
||||
end
|
||||
@issues_count = time_filter(Issue.where(author_id: observed_user.id), 'created_on').count
|
||||
@platform_issues_count = time_filter(Issue, 'created_on').count
|
||||
# 用户总项目数
|
||||
@project_count = Rails.cache.fetch("user-project-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Project.where(user_id:observed_user.id).maximum('created_on').to_i}") do
|
||||
time_filter(Project.where(user_id:observed_user.id), 'created_on').count
|
||||
end
|
||||
@platform_project_count = Rails.cache.fetch("platform-project-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Project.maximum('created_on').to_i}") do
|
||||
time_filter(Project, 'created_on').count
|
||||
end
|
||||
@project_count = time_filter(Project.where(user_id:observed_user.id), 'created_on').count
|
||||
@platform_project_count = time_filter(Project, 'created_on').count
|
||||
# 用户项目被fork数量
|
||||
@fork_count = Rails.cache.fetch("user-fork-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{ForkUser.joins(:project).where(projects: {user_id: observed_user.id}).maximum('created_at').to_i}") do
|
||||
time_filter(Project.where(user_id:observed_user.id), 'created_on').sum("forked_count")
|
||||
end
|
||||
@platform_fork_count = Rails.cache.fetch("platform-fork-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{ForkUser.maximum('created_at').to_i}") do
|
||||
time_filter(Project, 'created_on').sum("forked_count")
|
||||
end
|
||||
|
||||
@fork_count = time_filter(Project.where(user_id:observed_user.id), 'created_on').sum("forked_count")
|
||||
@platform_fork_count = time_filter(Project, 'created_on').sum("forked_count")
|
||||
# 用户项目关注数
|
||||
@project_watchers_count = Rails.cache.fetch("user-watchers-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{observed_user.id}-#{Watcher.where(watchable_type: 'Project', watchable_id: observed_user.projects).maximum('created_at').to_i}") do
|
||||
time_filter(Project.where(user_id: observed_user.id), 'created_on').sum("watchers_count")
|
||||
end
|
||||
@platform_project_watchers_count = Rails.cache.fetch("platform-watchers-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Watcher.where(watchable_type: 'Project').maximum('created_at').to_i}") do
|
||||
time_filter(Project, 'created_on').sum("watchers_count")
|
||||
end
|
||||
|
||||
@project_watchers_count = time_filter(Project.where(user_id: observed_user.id), 'created_on').sum("watchers_count")
|
||||
@platform_project_watchers_count = time_filter(Project, 'created_on').sum("watchers_count")
|
||||
# 用户项目点赞数
|
||||
@project_praises_count = Rails.cache.fetch("user-praises-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{PraiseTread.where(praise_tread_object_type: 'Project', praise_tread_object_id: observed_user.projects).maximum('created_at').to_i}") do
|
||||
time_filter(Project.where(user_id: observed_user.id), 'created_on').sum("praises_count")
|
||||
end
|
||||
@platform_project_praises_count = Rails.cache.fetch("user-praises-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{PraiseTread.where(praise_tread_object_type: 'Project', praise_tread_object_id: observed_user.projects).maximum('created_at').to_i}") do
|
||||
time_filter(Project, 'created_on').sum("praises_count")
|
||||
end
|
||||
|
||||
@project_praises_count = time_filter(Project.where(user_id: observed_user.id), 'created_on').sum("praises_count")
|
||||
@platform_project_praises_count = time_filter(Project, 'created_on').sum("praises_count")
|
||||
# 用户不同语言项目数量
|
||||
@project_languages_count = Rails.cache.fetch("user-languages-count-#{observed_user.id}-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Project.where(user_id:observed_user.id).maximum('created_on').to_i}") do
|
||||
time_filter(Project.where(user_id: observed_user.id), 'created_on').joins(:project_language).group("project_languages.name").count
|
||||
end
|
||||
@platform_project_languages_count = Rails.cache.fetch("platform-languages-count-start:#{params[:start_time]}-end:#{params[:end_time]}-#{Project.maximum('created_on').to_i}") do
|
||||
time_filter(Project, 'created_on').joins(:project_language).group("project_languages.name").count
|
||||
end
|
||||
@project_languages_count = time_filter(Project.where(user_id: observed_user.id), 'created_on').joins(:project_language).group("project_languages.name").count
|
||||
@platform_project_languages_count = time_filter(Project, 'created_on').joins(:project_language).group("project_languages.name").count
|
||||
else
|
||||
# 用户被follow数量
|
||||
@follow_count = Rails.cache.fetch("user-follow-count-#{observed_user.id}-#{Watcher.where(watchable: observed_user).maximum('created_at').to_i}") do
|
||||
time_filter(Watcher.where(watchable: observed_user), 'created_at').count
|
||||
end
|
||||
@platform_follow_count = Rails.cache.fetch("platform-follow-count-#{Watcher.where(watchable_type: 'User').maximum('created_at').to_i}") do
|
||||
time_filter(Watcher.where(watchable_type: 'User'), 'created_at').count
|
||||
end
|
||||
@follow_count = Cache::UserFollowCountService.call(observed_user)
|
||||
@platform_follow_count = Cache::PlatformFollowCountService.call
|
||||
# 用户pr数量
|
||||
@pullrequest_count = Rails.cache.fetch("user-pullrequest-count-#{observed_user.id}-#{PullRequest.where(user_id: observed_user.id).maximum('created_at').to_i}") do
|
||||
time_filter(PullRequest.where(user_id: observed_user.id), 'created_at').count
|
||||
end
|
||||
@platform_pullrequest_count = Rails.cache.fetch("platform-pullrequest-count-#{PullRequest.maximum('created_at').to_i}") do
|
||||
time_filter(PullRequest, 'created_at').count
|
||||
end
|
||||
@pullrequest_count = Cache::UserPullrequestCountService.call(observed_user)
|
||||
@platform_pullrequest_count = Cache::PlatformPullrequestCountService.call
|
||||
# 用户issue数量
|
||||
@issues_count = Rails.cache.fetch("user-issue-count-#{observed_user.id}-#{Issue.where(author_id: observed_user.id).maximum('created_on').to_i}") do
|
||||
time_filter(Issue.where(author_id: observed_user.id), 'created_on').count
|
||||
end
|
||||
@platform_issues_count = Rails.cache.fetch("platform-issue-count-#{Issue.maximum('created_on').to_i}") do
|
||||
time_filter(Issue, 'created_on').count
|
||||
end
|
||||
@issues_count = Cache::UserIssueCountService.call(observed_user)
|
||||
@platform_issues_count = Cache::PlatformIssueCountService.call
|
||||
# 用户总项目数
|
||||
@project_count = Rails.cache.fetch("user-project-count-#{observed_user.id}-#{Project.where(user_id:observed_user.id).maximum('created_on').to_i}") do
|
||||
time_filter(Project.where(user_id:observed_user.id), 'created_on').count
|
||||
end
|
||||
@platform_project_count = Rails.cache.fetch("platform-project-count-#{Project.maximum('created_on').to_i}") do
|
||||
time_filter(Project, 'created_on').count
|
||||
end
|
||||
@project_count = Cache::UserProjectCountService.call(observed_user)
|
||||
@platform_project_count = Cache::PlatformProjectCountService.call
|
||||
# 用户项目被fork数量
|
||||
@fork_count = Rails.cache.fetch("user-fork-count-#{observed_user.id}-#{ForkUser.joins(:project).where(projects: {user_id: observed_user.id}).maximum('created_at').to_i}") do
|
||||
time_filter(Project.where(user_id:observed_user.id), 'created_on').sum("forked_count")
|
||||
end
|
||||
@platform_fork_count = Rails.cache.fetch("platform-fork-count-#{ForkUser.maximum('created_at').to_i}") do
|
||||
time_filter(Project, 'created_on').sum("forked_count")
|
||||
end
|
||||
|
||||
@fork_count = Cache::UserProjectForkCountService.call(observed_user)
|
||||
@platform_fork_count = Cache::PlatformProjectForkCountService.call
|
||||
# 用户项目关注数
|
||||
@project_watchers_count = Rails.cache.fetch("user-watchers-count-#{observed_user.id}-#{Watcher.where(watchable_type: 'Project', watchable_id: observed_user.projects).maximum('created_at').to_i}") do
|
||||
time_filter(Project.where(user_id: observed_user.id), 'created_on').sum("watchers_count")
|
||||
end
|
||||
@platform_project_watchers_count = Rails.cache.fetch("platform-watchers-count-#{Watcher.where(watchable_type: 'Project').maximum('created_at').to_i}") do
|
||||
time_filter(Project, 'created_on').sum("watchers_count")
|
||||
end
|
||||
|
||||
@project_watchers_count = Cache::UserProjectWatchersCountService.call(observed_user)
|
||||
@platform_project_watchers_count = Cache::PlatformProjectWatchersCountService.call
|
||||
# 用户项目点赞数
|
||||
@project_praises_count = Rails.cache.fetch("user-praises-count-#{observed_user.id}-#{PraiseTread.where(praise_tread_object_type: 'Project', praise_tread_object_id: observed_user.projects).maximum('created_at').to_i}") do
|
||||
time_filter(Project.where(user_id: observed_user.id), 'created_on').sum("praises_count")
|
||||
end
|
||||
@platform_project_praises_count = Rails.cache.fetch("user-praises-count-#{observed_user.id}-#{PraiseTread.where(praise_tread_object_type: 'Project', praise_tread_object_id: observed_user.projects).maximum('created_at').to_i}") do
|
||||
time_filter(Project, 'created_on').sum("praises_count")
|
||||
end
|
||||
|
||||
@project_praises_count = Cache::UserProjectPraisesCountService.call(observed_user)
|
||||
@platform_project_praises_count = Cache::PlatformProjectPraisesCountService.call
|
||||
# 用户不同语言项目数量
|
||||
@project_languages_count = Rails.cache.fetch("user-languages-count-#{observed_user.id}-#{Project.where(user_id:observed_user.id).maximum('created_on').to_i}") do
|
||||
time_filter(Project.where(user_id: observed_user.id), 'created_on').joins(:project_language).group("project_languages.name").count
|
||||
end
|
||||
@platform_project_languages_count = Rails.cache.fetch("platform-languages-count-#{Project.maximum('created_on').to_i}") do
|
||||
time_filter(Project, 'created_on').joins(:project_language).group("project_languages.name").count
|
||||
end
|
||||
@project_languages_count = Cache::UserProjectLanguagesCountService.call(observed_user)
|
||||
@platform_project_languages_count = Cache::PlatformProjectLanguagesCountService.call
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user