mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-24 05:35:46 +08:00
新增:项目排行榜新增提交数算法
This commit is contained in:
10
app/services/cache/v2/project_rank_service.rb
vendored
10
app/services/cache/v2/project_rank_service.rb
vendored
@@ -1,5 +1,5 @@
|
||||
class Cache::V2::ProjectRankService < ApplicationService
|
||||
attr_reader :project_id, :visits, :praises, :forks, :issues, :pullrequests
|
||||
attr_reader :project_id, :visits, :praises, :forks, :issues, :pullrequests, :commits
|
||||
attr_accessor :project_common
|
||||
|
||||
def initialize(project_id, params={})
|
||||
@@ -9,6 +9,7 @@ class Cache::V2::ProjectRankService < ApplicationService
|
||||
@forks = params[:forks]
|
||||
@issues = params[:issues]
|
||||
@pullrequests = params[:pullrequests]
|
||||
@commits = params[:commits]
|
||||
end
|
||||
|
||||
def read
|
||||
@@ -54,7 +55,7 @@ class Cache::V2::ProjectRankService < ApplicationService
|
||||
$redis_cache.zincrby(project_rank_key, @praises.to_i * 5, @project_id)
|
||||
end
|
||||
if @forks.present?
|
||||
$redis_cache.zincrby(project_rank_key, @forks.to_i * 5, @project_id)
|
||||
$redis_cache.zincrby(project_rank_key, @forks.to_i * 10, @project_id)
|
||||
end
|
||||
if @issues.present?
|
||||
$redis_cache.zincrby(project_rank_key, @issues.to_i * 10, @project_id)
|
||||
@@ -62,6 +63,9 @@ class Cache::V2::ProjectRankService < ApplicationService
|
||||
if @pullrequests.present?
|
||||
$redis_cache.zincrby(project_rank_key, @pullrequests.to_i * 10, @project_id)
|
||||
end
|
||||
if @commits.present?
|
||||
$redis_cache.zincrby(project_rank_key, @commits.to_i * 1, @project_id)
|
||||
end
|
||||
reset_user_project_rank
|
||||
end
|
||||
|
||||
@@ -70,7 +74,7 @@ class Cache::V2::ProjectRankService < ApplicationService
|
||||
|
||||
def reset_project_rank
|
||||
load_project_common
|
||||
score = @project_common["visits"].to_i * 1 + @project_common["praises"].to_i * 5 + @project_common["forks"].to_i * 5 + @project_common["issues"].to_i * 10 + @project_common["pullrequests"].to_i * 10
|
||||
score = @project_common["visits"].to_i * 1 + @project_common["praises"].to_i * 5 + @project_common["forks"].to_i * 10 + @project_common["issues"].to_i * 10 + @project_common["pullrequests"].to_i * 10 + @project_common["commits"].to_i * 1
|
||||
$redis_cache.zadd(project_rank_key, score, @project_id)
|
||||
reset_user_project_rank
|
||||
|
||||
|
||||
Reference in New Issue
Block a user