新增:贡献者代码行根据score排序

This commit is contained in:
yystopf 2023-04-17 16:56:04 +08:00
parent 709a8985b6
commit 5b14252ecd
2 changed files with 8 additions and 6 deletions

View File

@ -877,10 +877,10 @@ class User < Owner
end
end
def self.develop_score(user_id=User.current.id)
def self.develop_score(commit_count, user_id=User.current.id)
user_date_statistic_key = "v2-user-statistic:#{user_id}"
follow_count = $redis_cache.hget(user_date_statistic_key, "follow-count") || 0
pullrequest_count = $redis_cache.hget(user_date_statistic_key, "pullrequest-count") || 0
pullrequest_count = $redis_cache.hget(user_date_statistic_key, "pullrequest-count").to_i || 0
issues_count = $redis_cache.hget(user_date_statistic_key, "issue-count") || 0
project_count = $redis_cache.hget(user_date_statistic_key, "project-count") || 0
fork_count = $redis_cache.hget(user_date_statistic_key, "fork-count") || 0
@ -888,7 +888,7 @@ class User < Owner
project_praises_count = $redis_cache.hget(user_date_statistic_key, "project-praise-count") || 0
project_language = $redis_cache.hget(user_date_statistic_key, "project-language")
project_languages_count = project_language.nil? || project_language == "{}" ? 0 : JSON.parse(project_language).length
pullrequest_count += commit_count
influence = (60.0 + follow_count.to_i / (follow_count.to_i + 20.0) * 40.0).to_i
contribution = (60.0 + pullrequest_count.to_i / (pullrequest_count.to_i + 20.0) * 40.0).to_i
activity = (60.0 + issues_count.to_i / (issues_count.to_i + 80.0) * 40.0).to_i

View File

@ -1,8 +1,10 @@
json.total_count @result_object[:total_data].to_i
json.contributors @result_object[:data].each do |contributor|
result_arr = @result_object[:data]
result_arr = result_arr.sort_by!{|c| User.develop_score(c["commits"])}.reverse
json.contributors result_arr.each do |contributor|
user = $redis_cache.hgetall("v2-owner-common:#{contributor["name"]}-#{contributor["email"]}")
if user.blank?
json.score 300
json.score User.develop_score(contributor["commits"])
json.contributions contributor["commits"]
json.additions contributor["additions"]
json.deletions contributor["deletions"]
@ -13,7 +15,7 @@ json.contributors @result_object[:data].each do |contributor|
json.name contributor["name"]
json.image_url User::Avatar.get_letter_avatar_url(contributor["name"])
else
json.score User.develop_score(user["id"])
json.score User.develop_score(contributor["commits"])
json.contributions contributor["commits"]
json.additions contributor["additions"]
json.deletions contributor["deletions"]