@@ -358,12 +358,21 @@ func applyMentionedCondition(sess *xorm.Session, mentionedID int64) *xorm.Sessio
358
358
}
359
359
360
360
func applyReviewRequestedCondition (sess * xorm.Session , reviewRequestedID int64 ) * xorm.Session {
361
- return sess .Join ("INNER" , []string {"review" , "r" }, "issue.id = r.issue_id" ).
362
- And ("issue.poster_id <> ?" , reviewRequestedID ).
363
- And ("r.type = ?" , ReviewTypeRequest ).
364
- And ("r.reviewer_id = ? and r.id in (select max(id) from review where issue_id = r.issue_id and reviewer_id = r.reviewer_id and type in (?, ?, ?))" +
365
- " or r.reviewer_team_id in (select team_id from team_user where uid = ?)" ,
366
- reviewRequestedID , ReviewTypeApprove , ReviewTypeReject , ReviewTypeRequest , reviewRequestedID )
361
+ existInTeamQuery := builder .Select ("team_user.team_id" ).
362
+ From ("team_user" ).
363
+ Where (builder.Eq {"team_user.uid" : reviewRequestedID })
364
+
365
+ subQuery := builder .Select ("review.issue_id" ).
366
+ From ("review" ).
367
+ Where (builder .And (
368
+ builder .In ("review.type" , []ReviewType {ReviewTypeRequest , ReviewTypeReject , ReviewTypeApprove }),
369
+ builder .Or (
370
+ builder.Eq {"review.reviewer_id" : reviewRequestedID },
371
+ builder .In ("review.reviewer_team_id" , existInTeamQuery ),
372
+ ),
373
+ ))
374
+ return sess .Where ("issue.poster_id <> ?" , reviewRequestedID ).
375
+ And (builder .In ("issue.id" , subQuery ))
367
376
}
368
377
369
378
func applyReviewedCondition (sess * xorm.Session , reviewedID int64 ) * xorm.Session {
0 commit comments