MM-43939: fixes LastReplyAt when deleting the last reply (#20615)
* MM-43939: fixes lastreplyat when deleting the last reply Currently we are not updating the Threads.LastReplyAt when the last reply gets deleted. This can lead to threads appearing unread when actually there is no unread thread. This commit updates the value of Threads.LastReplyAt when a reply gets deleted, to the most recent post's timestamp in the thread. * Updates ReplyCount to current value on post delete * Addresses review comments Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
@@ -2840,8 +2840,23 @@ func (s *SqlPostStore) updateThreadAfterReplyDeletion(transaction *sqlxTxWrapper
|
||||
}
|
||||
}
|
||||
|
||||
lastReplyAtSubquery := sq.Select("COALESCE(MAX(CreateAt), 0)").
|
||||
From("Posts").
|
||||
Where(sq.Eq{
|
||||
"RootId": rootId,
|
||||
"DeleteAt": 0,
|
||||
})
|
||||
|
||||
lastReplyCountSubquery := sq.Select("Count(*)").
|
||||
From("Posts").
|
||||
Where(sq.Eq{
|
||||
"RootId": rootId,
|
||||
"DeleteAt": 0,
|
||||
})
|
||||
|
||||
updateQueryString, updateArgs, err := updateQuery.
|
||||
Set("ReplyCount", sq.Expr("ReplyCount - 1")).
|
||||
Set("LastReplyAt", lastReplyAtSubquery).
|
||||
Set("ReplyCount", lastReplyCountSubquery).
|
||||
Where(sq.And{
|
||||
sq.Eq{"PostId": rootId},
|
||||
sq.Gt{"ReplyCount": 0},
|
||||
|
||||
Ссылка в новой задаче
Block a user