fix(forums): update last topic when delete a reply

This commit is contained in:
OldHawk
2018-05-04 22:33:50 +08:00
parent 60e59e91b8
commit 1a7620586e

View File

@@ -1001,6 +1001,14 @@ exports.deleteReply = function (req, res) {
replyUid = r.user._id;
topic._replies.pull(r);
topic.replyCount--;
var lastReply = topic._replies[topic._replies.length - 1];
if (lastReply === r) {
lastReply = topic._replies[topic._replies.length - 2];
}
topic.lastReplyAt = lastReply.createdAt;
topic.lastUser = lastReply.user;
topic.save(function (err) {
if (err) {
return res.status(422).send({
@@ -1017,6 +1025,18 @@ exports.deleteReply = function (req, res) {
$inc: {replyCount: -1}
}).exec();
Topic.findOne({
forum: forum._id
})
.sort('-lastReplyAt -createdAt')
.exec(function (err, topic) {
if (!err) {
forum.update({
lastTopic: topic
}).exec();
}
});
//add server message
if (serverNoticeConfig.action.forumReplyDeleted.enable && !replyUid.equals(req.user._id)) {
serverMessage.addMessage(replyUid, serverNoticeConfig.action.forumReplyDeleted.title, serverNoticeConfig.action.forumReplyDeleted.content, {