From 4e53686d72fa1577bba7bf166f56256a67299b28 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 24 11월 2021 13:27:32 +0900
Subject: [PATCH] 이슈목록 전체검색 가능한 기능 추가

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |    7 -------
 src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java  |    9 +++++++++
 src/main/resources/mybatis/query-template/issue-template.xml      |   15 +++++++++++++++
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
index ac137a7..7351c18 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -573,13 +573,6 @@
 
         //  �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂� 異붽�
         this.setIssueCustomFieldValue(issueVos, issueCondition);
-        //  �뾽泥� �젙蹂� 異붽�
-        //this.setIssueCompanyField(issueVos, issueCondition);
-        //  ISP �젙蹂� 異붽�
-        //this.setIssueIspField(issueVos, issueCondition);
-        //  HOSTING �젙蹂� 異붽�
-        //this.setIssueHostingField(issueVos, issueCondition);
-
     }
 
     //  寃��깋 議곌굔�쓣 留뚮뱺�떎
diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
index 2399de7..0ecc5fb 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
@@ -43,6 +43,7 @@
     private List<Long> departmentIds = Lists.newArrayList();
     private List<Long> registerIds = Lists.newArrayList();
     private List<String> issueIds = Lists.newArrayList();   //  �씠�뒋 紐⑸줉 寃��깋�뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶濡� 1李� 寃��깋�븳 寃곌낵瑜� �떞�쓣�븣 �궗�슜
+    private List<String> userCustomFields = Lists.newArrayList();
     private List<Map<String, Object>> issueCustomFields = Lists.newArrayList();
     private List<Map<String, Object>> issueCompanyField = Lists.newArrayList();
     private List<Map<String, Object>> issueIspField = Lists.newArrayList();
@@ -453,4 +454,12 @@
     public void setParentIssueId(Long parentIssueId) {
         this.parentIssueId = parentIssueId;
     }
+
+    public List<String> getUserCustomFields() {
+        return userCustomFields;
+    }
+
+    public void setUserCustomFields(List<String> userCustomFields) {
+        this.userCustomFields = userCustomFields;
+    }
 }
diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml
index e2a058d..7f2c8b5 100644
--- a/src/main/resources/mybatis/query-template/issue-template.xml
+++ b/src/main/resources/mybatis/query-template/issue-template.xml
@@ -31,6 +31,7 @@
         severity.id as severityId,
         severity.name as severityName,
         severity.color as severityColor,
+        issue_custom.use_value AS useValue,
         IFNULL(temp_attached_file.attachedFileCount, 0) as attachedFileCount,
         IFNULL(temp_issue_comment.issueCommentCount, 0) as issueCommentCount
         FROM issue issue FORCE INDEX(reverseIndex)
@@ -40,6 +41,7 @@
         INNER JOIN issue_type issue_type FORCE INDEX(PRIMARY) ON issue.issue_type_id = issue_type.id
         INNER JOIN priority priority FORCE INDEX(PRIMARY) ON issue.priority_id = priority.id
         INNER JOIN severity severity FORCE INDEX(PRIMARY) ON issue.severity_id = severity.id
+        LEFT OUTER JOIN issue_custom_field_value issue_custom FORCE INDEX(issueIdIndex) ON issue.id = issue_custom.issue_id
         LEFT OUTER JOIN issue_department issued FORCE INDEX(issueIdIndex) ON issue.id = issued.issue_id
         LEFT OUTER JOIN issue_user issue_user FORCE INDEX(issueIdIndex) ON issue.id = issue_user.issue_id
         LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as attachedFileCount FROM attached_file GROUP BY issue_id)
@@ -50,6 +52,19 @@
         WHERE 1=1
         <if test="title != null and !title.equals('') ">
             AND issue.title like CONCAT('%',#{title},'%')
+            OR issue.description like CONCAT('%',#{title},'%')
+            OR issue.start_date like CONCAT('%',#{title},'%')
+            OR issue.complete_date like CONCAT('%',#{title},'%')
+            OR issue.issue_number like CONCAT('%',#{title},'%')
+            OR issue.register_date like CONCAT('%',#{title},'%')
+            OR project.name like CONCAT('%',#{title},'%')
+            OR project.project_key like CONCAT('%',#{title},'%')
+            OR issue_type.name like CONCAT('%',#{title},'%')
+            OR issue_status.issue_status_type like CONCAT('%',#{title},'%')
+            OR issue_status.name like CONCAT('%',#{title},'%')
+            OR priority.name like CONCAT('%',#{title},'%')
+            OR severity.name like CONCAT('%',#{title},'%')
+            OR issue_custom.use_value like CONCAT('%',#{title},'%')
         </if>
 
         <if test="description != null and !description.equals('')">

--
Gitblit v1.8.0