|
|
|
@@ -877,6 +877,29 @@ class User < Owner |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
def self.develop_score(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 |
|
|
|
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 |
|
|
|
project_watchers_count = $redis_cache.hget(user_date_statistic_key, "project-watcher-count") || 0 |
|
|
|
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 |
|
|
|
|
|
|
|
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 |
|
|
|
experience = 10 * project_count.to_i + 5 * fork_count.to_i + project_watchers_count.to_i + project_praises_count.to_i |
|
|
|
experience = (60.0 + experience / (experience + 100.0) * 40.0).to_i |
|
|
|
language = (60.0 + project_languages_count.to_i / (project_languages_count.to_i + 5.0) * 40.0).to_i |
|
|
|
score = influence+ contribution + activity + experience + language |
|
|
|
|
|
|
|
score |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
protected |
|
|
|
def validate_password_length |
|
|
|
|