调整create issue 中的PmLink创建
This commit is contained in:
parent
dddc4f9752
commit
7ed4d12e95
|
@ -34,11 +34,11 @@ class Api::V1::Issues::CreateService < ApplicationService
|
||||||
@pm_issue_type = params[:pm_issue_type]
|
@pm_issue_type = params[:pm_issue_type]
|
||||||
@root_id = params[:root_id]
|
@root_id = params[:root_id]
|
||||||
@time_scale = params[:time_scale]
|
@time_scale = params[:time_scale]
|
||||||
@belink_able_id = params[:link_able_id]
|
@linkable_id = params[:link_able_id]
|
||||||
end
|
end
|
||||||
|
|
||||||
def call
|
def call
|
||||||
raise Error, errors.full_messages.join(", ") unless valid?
|
raise Error, errors.full_messages.join(', ') unless valid?
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
check_issue_status(status_id)
|
check_issue_status(status_id)
|
||||||
check_issue_priority(priority_id)
|
check_issue_priority(priority_id)
|
||||||
|
@ -67,18 +67,17 @@ class Api::V1::Issues::CreateService < ApplicationService
|
||||||
@created_issue.pm_issue_type = @pm_issue_type
|
@created_issue.pm_issue_type = @pm_issue_type
|
||||||
@created_issue.root_id = @root_id
|
@created_issue.root_id = @root_id
|
||||||
@created_issue.time_scale = @time_scale
|
@created_issue.time_scale = @time_scale
|
||||||
@created_issue.issue_tags_value = @issue_tags.order("id asc").pluck(:id).join(",") unless issue_tag_ids.blank?
|
@created_issue.issue_tags_value = @issue_tags.order('id asc').pluck(:id).join(',') unless issue_tag_ids.blank?
|
||||||
@created_issue.changer_id = @current_user.id
|
@created_issue.changer_id = @current_user.id
|
||||||
@created_issue.save!
|
@created_issue.save!
|
||||||
|
|
||||||
@created_issue.pm_links.find_or_create_by(be_linkable_type: 'Issue', be_linkable_id: @belink_able_id) if @belink_able_id.present?
|
PmLink.create(be_linkable_type: 'Issue', be_linkable_id: @created_issue.id, linkable_type: 'Issue', linkable_id: @linkable_id) if @linkable_id.present?
|
||||||
|
|
||||||
if Site.has_blockchain? && @project.use_blockchain
|
if Site.has_blockchain? && @project.use_blockchain
|
||||||
if @created_issue.blockchain_token_num.present? && @created_issue.blockchain_token_num > 0
|
if @created_issue.blockchain_token_num.present? && @created_issue.blockchain_token_num > 0
|
||||||
Blockchain::CreateIssue.call({user_id: current_user.id, project_id: @created_issue.project_id, token_num: @created_issue.blockchain_token_num})
|
Blockchain::CreateIssue.call({user_id: current_user.id, project_id: @created_issue.project_id, token_num: @created_issue.blockchain_token_num})
|
||||||
end
|
end
|
||||||
|
|
||||||
push_activity_2_blockchain("issue_create", @created_issue)
|
push_activity_2_blockchain('issue_create', @created_issue)
|
||||||
end
|
end
|
||||||
|
|
||||||
project.del_project_issue_cache_delete_count # 把缓存里存储项目删除issue的个数清除掉
|
project.del_project_issue_cache_delete_count # 把缓存里存储项目删除issue的个数清除掉
|
||||||
|
@ -117,8 +116,8 @@ class Api::V1::Issues::CreateService < ApplicationService
|
||||||
status_id: status_id,
|
status_id: status_id,
|
||||||
priority_id: priority_id,
|
priority_id: priority_id,
|
||||||
project_issues_index: (project.get_last_project_issues_index + 1),
|
project_issues_index: (project.get_last_project_issues_index + 1),
|
||||||
issue_type: "1",
|
issue_type: '1',
|
||||||
issue_classify: "issue"
|
issue_classify: 'issue'
|
||||||
}
|
}
|
||||||
|
|
||||||
issue_attributes.merge!({description: description}) if description.present?
|
issue_attributes.merge!({description: description}) if description.present?
|
||||||
|
@ -132,29 +131,29 @@ class Api::V1::Issues::CreateService < ApplicationService
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_author_participants
|
def build_author_participants
|
||||||
@created_issue.issue_participants.new({participant_type: "authored", participant_id: current_user.id})
|
@created_issue.issue_participants.new({participant_type: 'authored', participant_id: current_user.id})
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_assigner_participants
|
def build_assigner_participants
|
||||||
assigner_ids.each do |aid|
|
assigner_ids.each do |aid|
|
||||||
@created_issue.issue_participants.new({participant_type: "assigned", participant_id: aid})
|
@created_issue.issue_participants.new({participant_type: 'assigned', participant_id: aid})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_atme_participants
|
def build_atme_participants
|
||||||
@atme_receivers.each do |receiver|
|
@atme_receivers.each do |receiver|
|
||||||
@created_issue.issue_participants.new({participant_type: "atme", participant_id: receiver.id})
|
@created_issue.issue_participants.new({participant_type: 'atme', participant_id: receiver.id})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_issue_project_trends
|
def build_issue_project_trends
|
||||||
return if @project.id == 0
|
return if @project.id == 0
|
||||||
@created_issue.project_trends.new({user_id: current_user.id, project_id: @project.id, action_type: "create"})
|
@created_issue.project_trends.new({user_id: current_user.id, project_id: @project.id, action_type: 'create'})
|
||||||
@created_issue.project_trends.new({user_id: current_user.id, project_id: @project.id, action_type: ProjectTrend::CLOSE}) if status_id.to_i == 5
|
@created_issue.project_trends.new({user_id: current_user.id, project_id: @project.id, action_type: ProjectTrend::CLOSE}) if status_id.to_i == 5
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_issue_journal_details
|
def build_issue_journal_details
|
||||||
journal = @created_issue.journals.new({user_id: current_user.id})
|
journal = @created_issue.journals.new({user_id: current_user.id})
|
||||||
journal.journal_details.new({property: "issue", prop_key: 1, old_value: '', value: ''})
|
journal.journal_details.new({property: 'issue', prop_key: 1, old_value: '', value: ''})
|
||||||
end
|
end
|
||||||
end
|
end
|
Loading…
Reference in New Issue