fix: #10067, count posts instead of incr/decr

This commit is contained in:
Barış Soner Uşaklı
2021-12-07 18:40:23 -05:00
parent f4aa249d8c
commit 830166d120
4 changed files with 22 additions and 9 deletions

View File

@@ -84,7 +84,7 @@ module.exports = function (Posts) {
topics.updateTeaser(postData.tid),
topics.updateLastPostTimeFromLastPid(postData.tid),
db.sortedSetIncrBy(`tid:${postData.tid}:posters`, -1, postData.uid),
user.incrementUserPostCountBy(postData.uid, -1),
user.updatePostCount(postData.uid),
notifications.rescind(`new_post:tid:${postData.tid}:pid:${postData.pid}:uid:${postData.uid}`),
];

View File

@@ -169,7 +169,7 @@ module.exports = function (Posts) {
db.setObjectField(pids.map(pid => `post:${pid}`), 'uid', toUid),
db.sortedSetRemoveBulk(bulkRemove),
db.sortedSetAddBulk(bulkAdd),
user.incrementUserPostCountBy(toUid, pids.length),
user.updatePostCount(toUid),
user.incrementUserReputationBy(toUid, repChange),
handleMainPidOwnerChange(postData, toUid),
reduceCounters(postsByUser),
@@ -187,7 +187,7 @@ module.exports = function (Posts) {
await async.eachOfSeries(postsByUser, async (posts, uid) => {
const repChange = posts.reduce((acc, val) => acc + val.votes, 0);
await Promise.all([
user.incrementUserPostCountBy(uid, -posts.length),
user.updatePostCount(uid),
user.incrementUserReputationBy(uid, -repChange),
]);
});