From a792396d2e2573419cc7308ede32f84b4578d6e9 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 14 12월 2021 13:32:19 +0900 Subject: [PATCH] 이슈 Tree 목록 중복 이슈 필터링 수정 --- src/main/resources/mybatis/query-template/issue-template.xml | 47 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml index 6dc4ea1..ba47a55 100644 --- a/src/main/resources/mybatis/query-template/issue-template.xml +++ b/src/main/resources/mybatis/query-template/issue-template.xml @@ -46,6 +46,7 @@ LEFT OUTER JOIN issue_department isd FORCE INDEX(issueIdIndex) ON issue.id = isd.issue_id LEFT OUTER JOIN issue_user issue_user FORCE INDEX(issueIdIndex) ON issue.id = issue_user.issue_id LEFT OUTER JOIN user_department ud ON ud.department_id = isd.department_id + LEFT OUTER JOIN department d ON d.id = isd.department_id LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as attachedFileCount FROM attached_file GROUP BY issue_id) temp_attached_file on (temp_attached_file.issue_id = issue.id) LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as issueCommentCount FROM issue_comment GROUP BY issue_id) @@ -67,6 +68,7 @@ OR priority.name like CONCAT('%',#{keyWord},'%') OR severity.name like CONCAT('%',#{keyWord},'%') OR issue_custom.use_value like CONCAT('%',#{keyWord},'%') + OR d.department_name like CONCAT('%',#{keyWord},'%') </if> <if test="title != null and !title.equals('')"> @@ -553,11 +555,42 @@ SELECT COUNT(DISTINCT issue.id) FROM issue issue - LEFT OUTER JOIN issue_department isd ON issue.id = isd.issue_id - LEFT OUTER JOIN issue_status iss ON iss.id = issue.issue_status_id + INNER JOIN project project FORCE INDEX(workspaceIdIndex) ON issue.project_id = project.id + INNER JOIN workspace workspace ON workspace.id = project.workspace_id + INNER JOIN issue_status issue_status FORCE INDEX(PRIMARY) ON issue.issue_status_id = issue_status.id + 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 isd FORCE INDEX(issueIdIndex) ON issue.id = isd.issue_id + LEFT OUTER JOIN issue_user issue_user FORCE INDEX(issueIdIndex) ON issue.id = issue_user.issue_id LEFT OUTER JOIN user_department ud ON ud.department_id = isd.department_id + LEFT OUTER JOIN department d ON d.id = isd.department_id + LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as attachedFileCount FROM attached_file GROUP BY issue_id) + temp_attached_file on (temp_attached_file.issue_id = issue.id) + LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as issueCommentCount FROM issue_comment GROUP BY issue_id) + temp_issue_comment on (temp_issue_comment.issue_id = issue.id) + LEFT OUTER JOIN user user ON issue_user.user_id = user.id WHERE 1=1 - <if test="title != null and !title.equals('') "> + <if test="keyWord != null and !keyWord.equals('') "> + AND issue.title like CONCAT('%',#{keyWord},'%') + OR issue.description like CONCAT('%',#{keyWord},'%') + OR issue.start_date like CONCAT('%',#{keyWord},'%') + OR issue.complete_date like CONCAT('%',#{keyWord},'%') + OR issue.issue_number like CONCAT('%',#{keyWord},'%') + OR issue.register_date like CONCAT('%',#{keyWord},'%') + OR project.name like CONCAT('%',#{keyWord},'%') + OR project.project_key like CONCAT('%',#{keyWord},'%') + OR issue_type.name like CONCAT('%',#{keyWord},'%') + OR issue_status.issue_status_type like CONCAT('%',#{keyWord},'%') + OR issue_status.name like CONCAT('%',#{keyWord},'%') + OR priority.name like CONCAT('%',#{keyWord},'%') + OR severity.name like CONCAT('%',#{keyWord},'%') + OR issue_custom.use_value like CONCAT('%',#{keyWord},'%') + OR d.department_name like CONCAT('%',#{keyWord},'%') + </if> + + <if test="title != null and !title.equals('')"> AND issue.title like CONCAT('%',#{title},'%') </if> @@ -593,16 +626,16 @@ ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate} </if> - <if test="hideCompleteIssue != null and hideCompleteIssue == true"> - AND iss.issue_status_type != 'CLOSE' - </if> - <if test="combinationIssueNumber == null or combinationIssueNumber.equals('')"> <if test="hideDownIssue != null and hideDownIssue == true"> AND issue.parent_issue_id IS NULL </if> </if> + <if test="hideCompleteIssue != null and hideCompleteIssue == true"> + AND issue_status.issue_status_type != 'CLOSE' + </if> + <choose> <when test="projectIds.size != 0"> AND issue.project_id IN -- Gitblit v1.8.0