调整create issue 中的PmLink创建

This commit is contained in:
呱呱呱 2023-11-15 16:56:37 +08:00
parent dddc4f9752
commit 7ed4d12e95
1 changed files with 12 additions and 13 deletions

View File

@ -34,11 +34,11 @@ class Api::V1::Issues::CreateService < ApplicationService
@pm_issue_type = params[:pm_issue_type]
@root_id = params[:root_id]
@time_scale = params[:time_scale]
@belink_able_id = params[:link_able_id]
@linkable_id = params[:link_able_id]
end
def call
raise Error, errors.full_messages.join(", ") unless valid?
raise Error, errors.full_messages.join(', ') unless valid?
ActiveRecord::Base.transaction do
check_issue_status(status_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.root_id = @root_id
@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.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 @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})
end
push_activity_2_blockchain("issue_create", @created_issue)
push_activity_2_blockchain('issue_create', @created_issue)
end
project.del_project_issue_cache_delete_count # 把缓存里存储项目删除issue的个数清除掉
@ -117,8 +116,8 @@ class Api::V1::Issues::CreateService < ApplicationService
status_id: status_id,
priority_id: priority_id,
project_issues_index: (project.get_last_project_issues_index + 1),
issue_type: "1",
issue_classify: "issue"
issue_type: '1',
issue_classify: 'issue'
}
issue_attributes.merge!({description: description}) if description.present?
@ -132,29 +131,29 @@ class Api::V1::Issues::CreateService < ApplicationService
end
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
def build_assigner_participants
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
def build_atme_participants
@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
def build_issue_project_trends
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
end
def build_issue_journal_details
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