|
|
|
@@ -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处理为关闭 |
|
|
|
|