新增:项目缓存加入关闭issue数量
This commit is contained in:
parent
e2374676c3
commit
7d813c0ebe
|
@ -99,9 +99,20 @@ class Issue < ApplicationRecord
|
|||
scope :closed, ->{where(status_id: 5)}
|
||||
scope :opened, ->{where.not(status_id: 5)}
|
||||
after_create :incre_project_common, :incre_user_statistic, :incre_platform_statistic
|
||||
after_save :change_versions_count, :send_update_message_to_notice_system, :associate_attachment_container
|
||||
after_save :incre_or_decre_closed_issues_count, :change_versions_count, :send_update_message_to_notice_system, :associate_attachment_container
|
||||
after_destroy :update_closed_issues_count_in_project!, :decre_project_common, :decre_user_statistic, :decre_platform_statistic
|
||||
|
||||
def incre_or_decre_closed_issues_count
|
||||
if previous_changes[:status_id].present?
|
||||
if previous_changes[:status_id][1] == 5
|
||||
CacheAsyncSetJob.perform_later("project_common_service", {closed_issues: 1}, self.project_id)
|
||||
end
|
||||
if previous_changes[:status_id][0] == 5
|
||||
CacheAsyncSetJob.perform_later("project_common_service", {closed_issues: -1}, self.project_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def incre_project_common
|
||||
CacheAsyncSetJob.perform_later("project_common_service", {issues: 1}, self.project_id)
|
||||
end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class Cache::V2::ProjectCommonService < ApplicationService
|
||||
attr_reader :project_id, :owner_id, :name, :identifier, :description, :visits, :watchers, :praises, :forks, :issues, :pullrequests, :commits
|
||||
attr_reader :project_id, :owner_id, :name, :identifier, :description, :visits, :watchers, :praises, :forks, :issues, :closed_issues, :pullrequests, :commits
|
||||
attr_accessor :project
|
||||
|
||||
def initialize(project_id, params={})
|
||||
|
@ -13,6 +13,7 @@ class Cache::V2::ProjectCommonService < ApplicationService
|
|||
@praises = params[:praises]
|
||||
@forks = params[:forks]
|
||||
@issues = params[:issues]
|
||||
@closed_issues = params[:closed_issues]
|
||||
@pullrequests = params[:pullrequests]
|
||||
@commits = params[:commits]
|
||||
end
|
||||
|
@ -78,6 +79,10 @@ class Cache::V2::ProjectCommonService < ApplicationService
|
|||
"issues"
|
||||
end
|
||||
|
||||
def closed_issues_key
|
||||
"closed_issues"
|
||||
end
|
||||
|
||||
def pullrequests_key
|
||||
"pullrequests"
|
||||
end
|
||||
|
@ -151,6 +156,10 @@ class Cache::V2::ProjectCommonService < ApplicationService
|
|||
Cache::V2::ProjectRankService.call(@project_id, {issues: @issues})
|
||||
Cache::V2::ProjectDateRankService.call(@project_id, Date.today, {issues: @issues})
|
||||
end
|
||||
if @closed_issues.present?
|
||||
$redis_cache.hincrby(project_common_key, closed_issues_key, @closed_issues)
|
||||
Cache::V2::ProjectDateRankService.call(@project_id, Date.today, {closed_issues: @closed_issues})
|
||||
end
|
||||
if @pullrequests.present?
|
||||
$redis_cache.hincrby(project_common_key, pullrequests_key, @pullrequests)
|
||||
Cache::V2::ProjectRankService.call(@project_id, {pullrequests: @pullrequests})
|
||||
|
@ -202,6 +211,10 @@ class Cache::V2::ProjectCommonService < ApplicationService
|
|||
$redis_cache.hset(project_common_key, issues_key, Issue.issue_issue.where(project_id: @project_id).count)
|
||||
end
|
||||
|
||||
def reset_project_closed_issues
|
||||
$redis_cache.hset(project_common_key, closed_issues_key, Issue.issue_issue.closed.where(project_id: @project_id).count)
|
||||
end
|
||||
|
||||
def reset_project_pullrequests
|
||||
$redis_cache.hset(project_common_key, pullrequests_key, PullRequest.where(project_id: @project_id).count)
|
||||
end
|
||||
|
@ -224,6 +237,7 @@ class Cache::V2::ProjectCommonService < ApplicationService
|
|||
reset_project_praises
|
||||
reset_project_forks
|
||||
reset_project_issues
|
||||
reset_project_closed_issues
|
||||
reset_project_pullrequests
|
||||
reset_project_commits
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# 项目日活跃度计算存储
|
||||
class Cache::V2::ProjectDateRankService < ApplicationService
|
||||
attr_reader :project_id, :rank_date, :visits, :praises, :forks, :issues, :pullrequests, :commits
|
||||
attr_reader :project_id, :rank_date, :visits, :praises, :forks, :issues, :closed_issues, :pullrequests, :commits
|
||||
attr_accessor :project_common
|
||||
|
||||
def initialize(project_id, rank_date=Date.today, params={})
|
||||
|
@ -11,6 +11,7 @@ class Cache::V2::ProjectDateRankService < ApplicationService
|
|||
@praises = params[:praises]
|
||||
@forks = params[:forks]
|
||||
@issues = params[:issues]
|
||||
@closed_issues = params[:closed_issues]
|
||||
@pullrequests = params[:pullrequests]
|
||||
@commits = params[:commits]
|
||||
end
|
||||
|
@ -57,6 +58,9 @@ class Cache::V2::ProjectDateRankService < ApplicationService
|
|||
$redis_cache.zincrby(project_rank_key, @issues.to_i * 5, @project_id)
|
||||
$redis_cache.hincrby(project_rank_statistic_key, "issues", @issues.to_i)
|
||||
end
|
||||
if @closed_issues.present?
|
||||
$redis_cache.hincrby(project_rank_statistic_key, "closed_issues", @closed_issues.to_i)
|
||||
end
|
||||
if @pullrequests.present?
|
||||
$redis_cache.zincrby(project_rank_key, @pullrequests.to_i * 10, @project_id)
|
||||
$redis_cache.hincrby(project_rank_statistic_key, "pullrequests", @pullrequests.to_i)
|
||||
|
|
Loading…
Reference in New Issue