From 1681b144d66b8303d6917feaf2f83f905326ed83 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 6 Dec 2024 10:59:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9:=E6=9B=B4=E6=96=B0=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=9F=A5=E8=AF=A2=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/pm/issues_controller.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/pm/issues_controller.rb b/app/controllers/api/pm/issues_controller.rb index cf55fa9eb..687fa986e 100644 --- a/app/controllers/api/pm/issues_controller.rb +++ b/app/controllers/api/pm/issues_controller.rb @@ -238,17 +238,17 @@ class Api::Pm::IssuesController < Api::Pm::BaseController end def link_issues - children_issues = Issue.joins(:parent_issue).where(issues: {id: @issue.id}) - linkable_issues = Issue.where(id: PmLink.where(linkable_type: "Issue", linkable_id: @issue.id)) - belinkable_issues = Issue.where(id: PmLink.where(be_linkable_type: "Issue", be_linkable_id: @issue.id)) + children_issues = Issue.where(root_id: @issue.id) + linkable_issues = Issue.where(id: PmLink.where(linkable_type: "Issue", linkable_id: @issue.id).pluck(:be_linkable_id)) + belinkable_issues = Issue.where(id: PmLink.where(be_linkable_type: "Issue", be_linkable_id: @issue.id).pluck(:linkable_id)) full_link_issues_ids = children_issues.pluck(:id) | linkable_issues.pluck(:id) | belinkable_issues.pluck(:id) compare_link_issues_ids = children_issues.pluck(:id) | linkable_issues.pluck(:id) | belinkable_issues.pluck(:id) i = compare_link_issues_ids.count while i > 0 do - children_issues = Issue.joins(:parent_issue).where(issues: {id: compare_link_issues_ids}) - linkable_issues = Issue.where(id: PmLink.where(linkable_type: "Issue", linkable_id: compare_link_issues_ids)) - belinkable_issues = Issue.where(id: PmLink.where(be_linkable_type: "Issue", be_linkable_id: compare_link_issues_ids)) + children_issues = Issue.where(root_id: compare_link_issues_ids) + linkable_issues = Issue.where(id: PmLink.where(linkable_type: "Issue", linkable_id: compare_link_issues_ids).pluck(:be_linkable_id)) + belinkable_issues = Issue.where(id: PmLink.where(be_linkable_type: "Issue", be_linkable_id: compare_link_issues_ids).pluck(:linkable_id)) compare_link_issues_ids = children_issues.pluck(:id) | linkable_issues.pluck(:id) | belinkable_issues.pluck(:id) full_link_issues_ids = full_link_issues_ids | compare_link_issues_ids