From d79213d14f6f833e4a63ed5b473a7c68181f2527 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 22 Dec 2023 08:42:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9Aissue=E5=88=97?= =?UTF-8?q?=E8=A1=A8column=E6=97=A0=E5=80=BC=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/api/v1/issues/list_service.rb | 24 +++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/app/services/api/v1/issues/list_service.rb b/app/services/api/v1/issues/list_service.rb index 820f708e2..b267647e7 100644 --- a/app/services/api/v1/issues/list_service.rb +++ b/app/services/api/v1/issues/list_service.rb @@ -60,13 +60,31 @@ class Api::V1::Issues::ListService < ApplicationService issues = issues.where(author_id: author_id) if author_id.present? # issue_tag_ids - issues = issues.ransack(issue_tags_value_cont: issue_tag_ids.sort!.join(',')).result unless issue_tag_ids.blank? + if issue_tag_ids.present? + if issue_tag_ids.include?('-1') + issues = issues.where(issue_tags_value: nil).or(issues.where(issue_tags_value: "")) + else + issues = issues.ransack(issue_tags_value_cont: issue_tag_ids.sort!.join(',')).result + end + end # milestone_id - issues = issues.where(fixed_version_id: milestone_id) if milestone_id.present? + if milestone_id.present? + if milestone_id.to_i == -1 + issues = issues.where(fixed_version_id: nil) + else + issues = issues.where(fixed_version_id: milestone_id) + end + end # assigner_id - issues = issues.joins(:assigners).where(users: {id: assigner_id}) if assigner_id.present? + if assigner_id.present? + if assigner_id.to_i == -1 + issues = issues.left_joins(:assigners).where(users: {id: nil}) + else + issues = issues.joins(:assigners).where(users: {id: assigner_id}) + end + end # status_id issues = issues.where(status_id: status_id) if status_id.present? && category != 'closed'