更改:删除新增no_touching

This commit is contained in:
yystopf 2025-07-17 14:45:15 +08:00
parent c3ee0bb963
commit fdbc75b4be
1 changed files with 17 additions and 15 deletions

View File

@ -14,25 +14,27 @@ class Api::Pm::Issues::DeleteService < ApplicationService
def call
raise Error, errors.full_messages.join(", ") unless valid?
try_lock("Api::V1::Issues::DeleteService:#{project.id}") # 开始写数据,加锁
ActiveRecord::Base.transaction do
parent_issue = @issue.parent_issue
if @issue.root_id.present? && parent_issue.present?
journal = parent_issue.journals.create!({user_id: current_user.id})
journal.journal_details.create!({property: @issue.pm_issue_type_string, prop_key: 'leaf_issue', old_value: @issue.id.to_s})
end
ActiveRecord::Base.transaction do
Issue.no_touching do
parent_issue = @issue.parent_issue
if @issue.root_id.present? && parent_issue.present?
journal = parent_issue.journals.create!({user_id: current_user.id})
journal.journal_details.create!({property: @issue.pm_issue_type_string, prop_key: 'leaf_issue', old_value: @issue.id.to_s})
end
delete_issue
#删除双向关联
PmLink.where(be_linkable_id: @issue.id, be_linkable_type: 'Issue').or(PmLink.where(linkable_id: @issue.id, linkable_type: 'Issue')).map(&:destroy)
delete_issue
#删除双向关联
PmLink.where(be_linkable_id: @issue.id, be_linkable_type: 'Issue').or(PmLink.where(linkable_id: @issue.id, linkable_type: 'Issue')).map(&:destroy)
project.incre_project_issue_cache_delete_count
project.incre_project_issue_cache_delete_count
if Site.has_blockchain? && @project.use_blockchain && !project.id.zero?
unlock_balance_on_blockchain(@issue.author_id.to_s, @project.id.to_s, @issue.blockchain_token_num.to_i) if @issue.blockchain_token_num.present?
end
if Site.has_blockchain? && @project.use_blockchain && !project.id.zero?
unlock_balance_on_blockchain(@issue.author_id.to_s, @project.id.to_s, @issue.blockchain_token_num.to_i) if @issue.blockchain_token_num.present?
end
if Site.has_notice_menu? && !project.id.zero?
SendTemplateMessageJob.perform_later('IssueDeleted', current_user.id, @issue&.subject, @issue.assigners.pluck(:id), @issue.author_id)
if Site.has_notice_menu? && !project.id.zero?
SendTemplateMessageJob.perform_later('IssueDeleted', current_user.id, @issue&.subject, @issue.assigners.pluck(:id), @issue.author_id)
end
end
end
unlock("Api::V1::Issues::DeleteService:#{project.id}")