From 017802a7c487e979a54f789e8cc023cc169eb7ee Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 31 Jul 2025 15:19:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9:=20=E5=85=B3=E8=81=94issue?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=8D=E6=9F=A5=E8=AF=A2=E5=B7=B2=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/pm/issues_controller.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/pm/issues_controller.rb b/app/controllers/api/pm/issues_controller.rb index 8a2a81585..f72df0cc7 100644 --- a/app/controllers/api/pm/issues_controller.rb +++ b/app/controllers/api/pm/issues_controller.rb @@ -36,7 +36,11 @@ class Api::Pm::IssuesController < Api::Pm::BaseController ).where.not(id: not_join_id).order(updated_on: :desc) object_issues = object_issues.where(root_id: nil, child_count: 0) if params[:issue_filter_type] == 'leaf_issue' - @issues = kaminari_paginate(object_issues) + except_closed_issues_1 = object_issues.where(pm_issue_type: 1, status_id: [2,7,8]).to_sql + except_closed_issues_2 = object_issues.where(pm_issue_type: [2,3], status_id: [3,5,6]).to_sql + except_closed_issues_ids = Issue.from("( #{except_closed_issues_1} union #{except_closed_issues_2}) as issues").pluck(:id) + + @issues = kaminari_paginate(object_issues.where.not(id: except_closed_issues_ids)) render 'api/v1/issues/index' end @@ -46,6 +50,10 @@ class Api::Pm::IssuesController < Api::Pm::BaseController .where.not(id: Issue.full_children_issues(@issue).map{|i|i.id}) @issues = @issues.where(pm_issue_type: params[:pm_issue_type]) if params[:pm_issue_type].present? @issues = @issues.ransack(id_or_project_issues_index_eq: params[:keyword]).result.or(@issues.ransack(subject_or_description_cont: params[:keyword]).result) if params[:keyword].present? + except_closed_issues_1 = @issues.where(pm_issue_type: 1, status_id: [2,7,8]).to_sql + except_closed_issues_2 = @issues.where(pm_issue_type: [2,3], status_id: [3,5,6]).to_sql + except_closed_issues_ids = Issue.from("( #{except_closed_issues_1} union #{except_closed_issues_2}) as issues").pluck(:id) + @issues = @issues.where.not(id: except_closed_issues_ids) @issues = @issues.reorder("#{issue_sort_by} #{issue_sort_direction}") if params[:only_name].present? @issues = kaminary_select_paginate(