From 355307d21bae573ee130c99ac6cccb5a7b8f2d03 Mon Sep 17 00:00:00 2001 From: OldHawk Date: Sun, 16 Jul 2017 14:44:22 +0800 Subject: [PATCH] fix(forums): update user topic & reply count when +/- --- modules/forums/client/less/forum.less | 2 +- .../controllers/forums.server.controller.js | 30 +++++++++++++++++-- .../users/server/models/user.server.model.js | 8 +++++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/modules/forums/client/less/forum.less b/modules/forums/client/less/forum.less index cc78ece1..cb016f42 100644 --- a/modules/forums/client/less/forum.less +++ b/modules/forums/client/less/forum.less @@ -299,7 +299,7 @@ .reply-item { .reply-wrapper { padding-left: 60px; - margin: 20px 40px 20px 20px; + margin: 20px; .reply-comment { position: relative; background-color: #fff; diff --git a/modules/forums/server/controllers/forums.server.controller.js b/modules/forums/server/controllers/forums.server.controller.js index c3dceb3a..be529cb4 100644 --- a/modules/forums/server/controllers/forums.server.controller.js +++ b/modules/forums/server/controllers/forums.server.controller.js @@ -176,6 +176,7 @@ exports.globalTopics = function (req, res) { * @param res */ exports.postNewTopic = function (req, res) { + var user = req.user; var forum = req.forum; var topic = new Topic(req.body); topic.forum = forum; @@ -218,6 +219,10 @@ exports.postNewTopic = function (req, res) { $inc: {topicCount: 1}, lastTopic: topic }).exec(); + + user.update({ + $inc: {topics: 1} + }).exec(); } }); }; @@ -453,6 +458,12 @@ exports.deleteTopic = function (req, res) { var topic = req.topic; var rcount = topic.replyCount; + topic._replies.forEach(function (r) { + r.user.update({ + $inc: {replies: -1} + }).exec(); + }); + topic.remove(function (err) { if (err) { return res.status(422).send({ @@ -474,6 +485,10 @@ exports.deleteTopic = function (req, res) { } }); + topic.user.update({ + $inc: {topics: -1} + }).exec(); + //create trace log traceLogCreate(req, traceConfig.action.forumDeleteTopic, { forum: forum._id, @@ -489,6 +504,7 @@ exports.deleteTopic = function (req, res) { * @param res */ exports.postNewReply = function (req, res) { + var user = req.user; var forum = req.forum; var topic = req.topic; var reply = new Reply(req.body); @@ -532,6 +548,10 @@ exports.postNewReply = function (req, res) { } else { res.json(topic); + user.update({ + $inc: {replies: 1} + }).exec(); + forum.update({ $inc: {replyCount: 1}, lastTopic: topic @@ -577,9 +597,9 @@ exports.deleteReply = function (req, res) { var forum = req.forum; var topic = req.topic; - topic._replies.forEach(function (t) { - if (t._id.equals(req.params.replyId)) { - topic._replies.pull(t); + topic._replies.forEach(function (r) { + if (r._id.equals(req.params.replyId)) { + topic._replies.pull(r); topic.replyCount--; topic.save(function (err) { if (err) { @@ -589,6 +609,10 @@ exports.deleteReply = function (req, res) { } else { res.json(topic); + r.user.update({ + $inc: {replies: -1} + }).exec(); + forum.update({ $inc: {replyCount: -1} }).exec(); diff --git a/modules/users/server/models/user.server.model.js b/modules/users/server/models/user.server.model.js index b7c97b2c..b87fe1e6 100644 --- a/modules/users/server/models/user.server.model.js +++ b/modules/users/server/models/user.server.model.js @@ -158,6 +158,14 @@ var UserSchema = new Schema({ type: Number, default: 0 }, + topics: { + type: Number, + default: 0 + }, + replies: { + type: Number, + default: 0 + }, updated: { type: Date },