修复:重复初始化标签问题
This commit is contained in:
parent
54a85a60fa
commit
a07da79e89
|
@ -5,8 +5,9 @@ class Api::V1::IssuesController < Api::V1::BaseController
|
||||||
before_action :check_issue_operate_permission, only: [:update, :destroy]
|
before_action :check_issue_operate_permission, only: [:update, :destroy]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
IssueTag.init_data(@project.id) if @project.issue_tags.size < 10
|
IssueTag.init_data(@project.id) unless $redis_cache.hget("project_init_issue_tags", @project.id)
|
||||||
@object_result = Api::V1::Issues::ListService.call(@project, query_params, current_user)
|
@object_result = Api::V1::Issues::ListService.call(@project, query_params, current_user)
|
||||||
|
@total_issues_count = @object_result[:total_issues_count]
|
||||||
@opened_issues_count = @object_result[:opened_issues_count]
|
@opened_issues_count = @object_result[:opened_issues_count]
|
||||||
@closed_issues_count = @object_result[:closed_issues_count]
|
@closed_issues_count = @object_result[:closed_issues_count]
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ class IssueTag < ApplicationRecord
|
||||||
next if IssueTag.exists?(project_id: project_id, name: item[0])
|
next if IssueTag.exists?(project_id: project_id, name: item[0])
|
||||||
IssueTag.create!(project_id: project_id, name: item[0], description: item[1], color: item[2])
|
IssueTag.create!(project_id: project_id, name: item[0], description: item[1], color: item[2])
|
||||||
end
|
end
|
||||||
|
$redis_cache.hset("project_init_issue_tags", project_id, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
|
|
||||||
attr_reader :project, :category, :participant_category, :keyword, :author_id, :issue_tag_ids
|
attr_reader :project, :category, :participant_category, :keyword, :author_id, :issue_tag_ids
|
||||||
attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user
|
attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user
|
||||||
attr_accessor :queried_issues, :closed_issues_count, :opened_issues_count
|
attr_accessor :queried_issues, :total_issues_count, :closed_issues_count, :opened_issues_count
|
||||||
|
|
||||||
validates :category, inclusion: {in: %w(all opened closed), message: "请输入正确的Category"}
|
validates :category, inclusion: {in: %w(all opened closed), message: "请输入正确的Category"}
|
||||||
validates :participant_category, inclusion: {in: %w(all aboutme authoredme assignedme atme), message: "请输入正确的ParticipantCategory"}
|
validates :participant_category, inclusion: {in: %w(all aboutme authoredme assignedme atme), message: "请输入正确的ParticipantCategory"}
|
||||||
|
@ -31,7 +31,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
begin
|
begin
|
||||||
issue_query_data
|
issue_query_data
|
||||||
|
|
||||||
return {data: queried_issues, closed_issues_count: @closed_issues_count, opened_issues_count: @opened_issues_count}
|
return {data: queried_issues, total_issues_count: @total_issues_count, closed_issues_count: @closed_issues_count, opened_issues_count: @opened_issues_count}
|
||||||
rescue
|
rescue
|
||||||
raise Error, "服务器错误,请联系系统管理员!"
|
raise Error, "服务器错误,请联系系统管理员!"
|
||||||
end
|
end
|
||||||
|
@ -40,15 +40,6 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
private
|
private
|
||||||
def issue_query_data
|
def issue_query_data
|
||||||
issues = @project.issues.issue_issue
|
issues = @project.issues.issue_issue
|
||||||
@closed_issues_count = issues.closed.size
|
|
||||||
@opened_issues_count = issues.opened.size
|
|
||||||
|
|
||||||
case category
|
|
||||||
when 'closed'
|
|
||||||
issues = issues.closed
|
|
||||||
when 'opened'
|
|
||||||
issues = issues.opened
|
|
||||||
end
|
|
||||||
|
|
||||||
case participant_category
|
case participant_category
|
||||||
when 'aboutme' # 关于我的
|
when 'aboutme' # 关于我的
|
||||||
|
@ -61,6 +52,17 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: 'atme'},users: {id: current_user&.id})
|
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: 'atme'},users: {id: current_user&.id})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@total_issues_count = issues.size
|
||||||
|
@closed_issues_count = issues.closed.size
|
||||||
|
@opened_issues_count = issues.opened.size
|
||||||
|
|
||||||
|
case category
|
||||||
|
when 'closed'
|
||||||
|
issues = issues.closed
|
||||||
|
when 'opened'
|
||||||
|
issues = issues.opened
|
||||||
|
end
|
||||||
|
|
||||||
# author_id
|
# author_id
|
||||||
issues = issues.where(author_id: author_id) if author_id.present?
|
issues = issues.where(author_id: author_id) if author_id.present?
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
json.total_count @issues.total_count
|
json.total_issues_count @opened_issues_count
|
||||||
json.opened_count @opened_issues_count
|
json.opened_count @opened_issues_count
|
||||||
json.closed_count @closed_issues_count
|
json.closed_count @closed_issues_count
|
||||||
|
json.total_count @issues.total_count
|
||||||
json.issues @issues.each do |issue|
|
json.issues @issues.each do |issue|
|
||||||
json.partial! "simple_detail", locals: {issue: issue}
|
json.partial! "simple_detail", locals: {issue: issue}
|
||||||
end
|
end
|
Loading…
Reference in New Issue