@@ -345,12 +345,21 @@ func applyMentionedCondition(sess *xorm.Session, mentionedID int64) *xorm.Sessio
345
345
}
346
346
347
347
func applyReviewRequestedCondition (sess * xorm.Session , reviewRequestedID int64 ) * xorm.Session {
348
- return sess .Join ("INNER" , []string {"review" , "r" }, "issue.id = r.issue_id" ).
349
- And ("issue.poster_id <> ?" , reviewRequestedID ).
350
- And ("r.type = ?" , ReviewTypeRequest ).
351
- 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 (?, ?, ?))" +
352
- " or r.reviewer_team_id in (select team_id from team_user where uid = ?)" ,
353
- reviewRequestedID , ReviewTypeApprove , ReviewTypeReject , ReviewTypeRequest , reviewRequestedID )
348
+ existInTeamQuery := builder .Select ("team_user.team_id" ).
349
+ From ("team_user" ).
350
+ Where (builder.Eq {"team_user.uid" : reviewRequestedID })
351
+
352
+ subQuery := builder .Select ("review.issue_id" ).
353
+ From ("review" ).
354
+ Where (builder .And (
355
+ builder .In ("review.type" , []ReviewType {ReviewTypeRequest , ReviewTypeReject , ReviewTypeApprove }),
356
+ builder .Or (
357
+ builder.Eq {"review.reviewer_id" : reviewRequestedID },
358
+ builder .In ("review.reviewer_team_id" , existInTeamQuery ),
359
+ ),
360
+ ))
361
+ return sess .Where ("issue.poster_id <> ?" , reviewRequestedID ).
362
+ And (builder .In ("issue.id" , subQuery ))
354
363
}
355
364
356
365
func applyReviewedCondition (sess * xorm.Session , reviewedID int64 ) * xorm.Session {
0 commit comments