From 04971c33a3daef4e249afbcbfc0a24901669222a Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 3 Mar 2022 01:38:56 +0800 Subject: [PATCH] Improve the deletion of issue (#18945) Co-authored-by: 6543 <6543@obermui.de> --- models/issue.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/models/issue.go b/models/issue.go index 625374faaf..fd59ac0a4b 100644 --- a/models/issue.go +++ b/models/issue.go @@ -2043,17 +2043,17 @@ func deleteIssue(ctx context.Context, issue *Issue) error { } // delete actions assigned to this issue - var comments []int64 - if err := e.Table(new(Comment)).In("issue_id", issue.ID).Cols("id").Find(&comments); err != nil { + subQuery := builder.Select("`id`"). + From("`comment`"). + Where(builder.Eq{"`issue_id`": issue.ID}) + if _, err := e.In("comment_id", subQuery).Delete(&Action{}); err != nil { return err } - for i := range comments { - if _, err := e.Where("comment_id = ?", comments[i]).Delete(&Action{}); err != nil { - return err - } - } - if _, err := e.Table("action").Where("repo_id = ?", issue.RepoID).In("op_type", ActionCreateIssue, ActionCreatePullRequest). - Where("content LIKE ?", strconv.FormatInt(issue.ID, 10)+"|%").Delete(&Action{}); err != nil { + + if _, err := e.Table("action").Where("repo_id = ?", issue.RepoID). + In("op_type", ActionCreateIssue, ActionCreatePullRequest). + Where("content LIKE ?", strconv.FormatInt(issue.ID, 10)+"|%"). + Delete(&Action{}); err != nil { return err }