mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-09 22:39:50 +08:00
新增:合并请求关联疑修逻辑
This commit is contained in:
@@ -127,6 +127,18 @@ class PullRequestsController < ApplicationController
|
||||
return normal_status(-1, "请输入正确的标记。")
|
||||
end
|
||||
end
|
||||
if params[:attached_issue_ids].present?
|
||||
if params[:attached_issue_ids].is_a?(Array) && params[:attached_issue_ids].size > 1
|
||||
return normal_status(-1, "最多只能关联一个疑修。")
|
||||
elsif params[:attached_issue_ids].is_a?(Array) && params[:attached_issue_ids].size == 1
|
||||
@pull_request&.pull_attached_issues&.destroy_all
|
||||
params[:attached_issue_ids].each do |issue|
|
||||
PullAttachedIssue.create!(issue_id: issue, pull_request_id: @pull_request.id)
|
||||
end
|
||||
else
|
||||
return normal_status(-1, "请输入正确的疑修。")
|
||||
end
|
||||
end
|
||||
if params[:status_id].to_i == 5
|
||||
@issue.issue_times.update_all(end_time: Time.now)
|
||||
end
|
||||
@@ -214,35 +226,15 @@ class PullRequestsController < ApplicationController
|
||||
push_activity_2_blockchain("pull_request_merge", @pull_request)
|
||||
|
||||
# 查看是否fix了相关issue,如果fix就转账
|
||||
if params["fix_issue_id"].nil? || params["fix_issue_id"] == ""
|
||||
else
|
||||
issue = Issue.find_by(id: params["fix_issue_id"])
|
||||
if issue.nil?
|
||||
normal_status(-1, "关联issue失败")
|
||||
raise ActiveRecord::Rollback
|
||||
else
|
||||
token_num = issue.blockchain_token_num
|
||||
token_num = token_num.nil? ? 0 : token_num
|
||||
owner = User.find_by(login: params["owner"])
|
||||
pr = PullRequest.find_by(id: params["pull_request"]["id"])
|
||||
if owner.nil? || pr.nil?
|
||||
normal_status(-1, "关联issue失败")
|
||||
raise ActiveRecord::Rollback
|
||||
else
|
||||
project = Project.find_by(user_id: owner.id, identifier: params["project_id"])
|
||||
if project.nil?
|
||||
normal_status(-1, "关联issue失败")
|
||||
raise ActiveRecord::Rollback
|
||||
else
|
||||
author_id = pr.user_id
|
||||
if token_num > 0
|
||||
Blockchain::FixIssue.call({user_id: author_id.to_s, project_id: project.id.to_s, token_num: token_num})
|
||||
end
|
||||
# update issue to state 5
|
||||
issue.update(status_id: 5)
|
||||
end
|
||||
end
|
||||
@pull_request.attached_issues.each do |issue|
|
||||
token_num = issue.blockchain_token_num
|
||||
token_num = token_num.nil? ? 0 : token_num
|
||||
author_id = @pull_request.user_id
|
||||
if token_num > 0
|
||||
Blockchain::FixIssue.call({user_id: author_id.to_s, project_id: project.id.to_s, token_num: token_num})
|
||||
end
|
||||
# update issue to state 5
|
||||
issue.update(status_id: 5)
|
||||
end
|
||||
|
||||
# 合并请求下issue处理为关闭
|
||||
|
||||
Reference in New Issue
Block a user