|
|
@ -358,12 +358,21 @@ func applyMentionedCondition(sess *xorm.Session, mentionedID int64) *xorm.Sessio |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func applyReviewRequestedCondition(sess *xorm.Session, reviewRequestedID int64) *xorm.Session { |
|
|
|
func applyReviewRequestedCondition(sess *xorm.Session, reviewRequestedID int64) *xorm.Session { |
|
|
|
return sess.Join("INNER", []string{"review", "r"}, "issue.id = r.issue_id"). |
|
|
|
existInTeamQuery := builder.Select("team_user.team_id"). |
|
|
|
And("issue.poster_id <> ?", reviewRequestedID). |
|
|
|
From("team_user"). |
|
|
|
And("r.type = ?", ReviewTypeRequest). |
|
|
|
Where(builder.Eq{"team_user.uid": reviewRequestedID}) |
|
|
|
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 (?, ?, ?))"+ |
|
|
|
|
|
|
|
" or r.reviewer_team_id in (select team_id from team_user where uid = ?)", |
|
|
|
subQuery := builder.Select("review.issue_id"). |
|
|
|
reviewRequestedID, ReviewTypeApprove, ReviewTypeReject, ReviewTypeRequest, reviewRequestedID) |
|
|
|
From("review"). |
|
|
|
|
|
|
|
Where(builder.And( |
|
|
|
|
|
|
|
builder.In("review.type", []ReviewType{ReviewTypeRequest, ReviewTypeReject, ReviewTypeApprove}), |
|
|
|
|
|
|
|
builder.Or( |
|
|
|
|
|
|
|
builder.Eq{"review.reviewer_id": reviewRequestedID}, |
|
|
|
|
|
|
|
builder.In("review.reviewer_team_id", existInTeamQuery), |
|
|
|
|
|
|
|
), |
|
|
|
|
|
|
|
)) |
|
|
|
|
|
|
|
return sess.Where("issue.poster_id <> ?", reviewRequestedID). |
|
|
|
|
|
|
|
And(builder.In("issue.id", subQuery)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func applyReviewedCondition(sess *xorm.Session, reviewedID int64) *xorm.Session { |
|
|
|
func applyReviewedCondition(sess *xorm.Session, reviewedID int64) *xorm.Session { |
|
|
|