From ef9592ef301f51267d4910c3b3ce520d482cbd09 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 23 Sep 2022 10:28:12 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E6=B4=BB?= =?UTF-8?q?=E8=B7=83=E5=BA=A6=E7=AE=97=E6=B3=95=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/cache/v2/project_common_service.rb | 2 ++ app/services/cache/v2/project_date_rank_service.rb | 8 ++++++-- app/services/cache/v2/project_rank_service.rb | 10 +++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/services/cache/v2/project_common_service.rb b/app/services/cache/v2/project_common_service.rb index 97023ae2..0d167c2a 100644 --- a/app/services/cache/v2/project_common_service.rb +++ b/app/services/cache/v2/project_common_service.rb @@ -133,6 +133,8 @@ class Cache::V2::ProjectCommonService < ApplicationService end if @watchers.present? $redis_cache.hincrby(project_common_key, watchers_key, @watchers) + Cache::V2::ProjectRankService.call(@project_id, {watchers: @watchers}) + Cache::V2::ProjectDateRankService.call(@project_id, Date.today, {watchers: @watchers}) end if @praises.present? $redis_cache.hincrby(project_common_key, praises_key, @praises) diff --git a/app/services/cache/v2/project_date_rank_service.rb b/app/services/cache/v2/project_date_rank_service.rb index 08aae6f7..9d8ffca9 100644 --- a/app/services/cache/v2/project_date_rank_service.rb +++ b/app/services/cache/v2/project_date_rank_service.rb @@ -7,6 +7,7 @@ class Cache::V2::ProjectDateRankService < ApplicationService @project_id = project_id @rank_date = rank_date @visits = params[:visits] + @watchers = params[:watchers] @praises = params[:praises] @forks = params[:forks] @issues = params[:issues] @@ -35,6 +36,9 @@ class Cache::V2::ProjectDateRankService < ApplicationService if @visits.present? $redis_cache.zincrby(project_rank_key, @visits.to_i * 1, @project_id) end + if @watchers.present? + $redis_cache.zincrby(project_rank_key, @watchers.to_i * 5, @project_id) + end if @praises.present? $redis_cache.zincrby(project_rank_key, @praises.to_i * 5, @project_id) end @@ -42,13 +46,13 @@ class Cache::V2::ProjectDateRankService < ApplicationService $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) + $redis_cache.zincrby(project_rank_key, @issues.to_i * 5, @project_id) end 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) + $redis_cache.zincrby(project_rank_key, @commits.to_i * 5, @project_id) end $redis_cache.zscore(project_rank_key, @project_id) diff --git a/app/services/cache/v2/project_rank_service.rb b/app/services/cache/v2/project_rank_service.rb index 3265c0a6..b88c416c 100644 --- a/app/services/cache/v2/project_rank_service.rb +++ b/app/services/cache/v2/project_rank_service.rb @@ -5,6 +5,7 @@ class Cache::V2::ProjectRankService < ApplicationService def initialize(project_id, params={}) @project_id = project_id @visits = params[:visits] + @watchers = params[:watchers] @praises = params[:praises] @forks = params[:forks] @issues = params[:issues] @@ -51,6 +52,9 @@ class Cache::V2::ProjectRankService < ApplicationService if @visits.present? $redis_cache.zincrby(project_rank_key, @visits.to_i * 1, @project_id) end + if @watchers.present? + $redis_cache.zincrby(project_rank_key, @watchers.to_i * 5, @project_id) + end if @praises.present? $redis_cache.zincrby(project_rank_key, @praises.to_i * 5, @project_id) end @@ -58,13 +62,13 @@ class Cache::V2::ProjectRankService < ApplicationService $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) + $redis_cache.zincrby(project_rank_key, @issues.to_i * 5, @project_id) end 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) + $redis_cache.zincrby(project_rank_key, @commits.to_i * 5, @project_id) end reset_user_project_rank end @@ -74,7 +78,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 * 10 + @project_common["issues"].to_i * 10 + @project_common["pullrequests"].to_i * 10 + @project_common["commits"].to_i * 1 + score = @project_common["visits"].to_i * 1 + @project_common["watchers"].to_i * 5 + @project_common["praises"].to_i * 5 + @project_common["forks"].to_i * 10 + @project_common["issues"].to_i * 5 + @project_common["pullrequests"].to_i * 10 + @project_common["commits"].to_i * 5 $redis_cache.zadd(project_rank_key, score, @project_id) reset_user_project_rank From d7f3a21addaf53da05a07759e3ab2864bc00c973 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 23 Sep 2022 17:56:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=91=A8?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=95=B0=E6=8D=AE=E9=9C=80=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=B9=B4=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/timeable_visit_record.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/timeable_visit_record.rb b/app/models/timeable_visit_record.rb index 974e785e..8411ddf6 100644 --- a/app/models/timeable_visit_record.rb +++ b/app/models/timeable_visit_record.rb @@ -20,7 +20,7 @@ class TimeableVisitRecord < ApplicationRecord belongs_to :project def self.build(project_id) - week = TimeableVisitRecord.find_or_create_by!(time: Date.today.cweek, project_id: project_id) + week = TimeableVisitRecord.find_or_create_by!(time: Date.today.strftime("%Y-%W"), project_id: project_id) month = TimeableVisitRecord.find_or_create_by!(time: Date.today.strftime("%Y%m"), project_id: project_id) return week, month