From: Joshua Rüsweg Date: Sun, 27 May 2018 20:20:45 +0000 (+0200) Subject: Optimize code to update user stats X-Git-Tag: 5.2.0_Alpha_1~364^2~101^2~101 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=be532907231ef9b95fb4f614ff1fb7950bea3843;p=GitHub%2FWoltLab%2FWCF.git Optimize code to update user stats See #2508 --- diff --git a/wcfsetup/install/files/lib/system/reaction/ReactionHandler.class.php b/wcfsetup/install/files/lib/system/reaction/ReactionHandler.class.php index ae07e29f05..85b18e005b 100644 --- a/wcfsetup/install/files/lib/system/reaction/ReactionHandler.class.php +++ b/wcfsetup/install/files/lib/system/reaction/ReactionHandler.class.php @@ -413,50 +413,27 @@ class ReactionHandler extends SingletonFactory { */ private function updateUsersLikeCounter(ILikeObject $likeable, LikeObject $likeObject, Like $like, ReactionType $reactionType = null) { if ($likeable->getUserID()) { - if ($reactionType === null) { - if ($like->likeID) { - if ($like->getReactionType()->isPositive()) { - $userEditor = new UserEditor(UserRuntimeCache::getInstance()->getObject($likeable->getUserID())); - $userEditor->updateCounters([ - 'likesReceived' => -1, - 'positiveReactionsReceived' => -1 - ]); - } - else if ($like->getReactionType()->isNegative()) { - $userEditor = new UserEditor(UserRuntimeCache::getInstance()->getObject($likeable->getUserID())); - $userEditor->updateCounters([ - 'negativeReactionsReceived' => -1 - ]); - } - else if ($like->getReactionType()->isNeutral()) { - $userEditor = new UserEditor(UserRuntimeCache::getInstance()->getObject($likeable->getUserID())); - $userEditor->updateCounters([ - 'neutralReactionsReceived' => -1 - ]); - } + $counters = [ + 'likesReceived' => 0, + 'positiveReactionsReceived' => 0, + 'negativeReactionsReceived' => 0, + 'neutralReactionsReceived' => 0 + ]; + + if ($like->likeID) { + if ($like->getReactionType()->isPositive()) { + $counters['likesReceived']--; + $counters['positiveReactionsReceived']--; } - } - else { - $counters = [ - 'likesReceived' => 0, - 'positiveReactionsReceived' => 0, - 'negativeReactionsReceived' => 0, - 'neutralReactionsReceived' => 0 - ]; - - if ($like->likeID) { - if ($like->getReactionType()->isPositive()) { - $counters['likesReceived']--; - $counters['positiveReactionsReceived']--; - } - else if ($like->getReactionType()->isNegative()) { - $counters['negativeReactionsReceived']--; - } - else if ($like->getReactionType()->isNeutral()) { - $counters['neutralReactionsReceived']--; - } + else if ($like->getReactionType()->isNegative()) { + $counters['negativeReactionsReceived']--; } - + else if ($like->getReactionType()->isNeutral()) { + $counters['neutralReactionsReceived']--; + } + } + + if ($reactionType !== null) { if ($reactionType->isPositive()) { $counters['likesReceived']++; $counters['positiveReactionsReceived']++; @@ -467,10 +444,10 @@ class ReactionHandler extends SingletonFactory { else if ($reactionType->isNeutral()) { $counters['neutralReactionsReceived']++; } - - $userEditor = new UserEditor(UserRuntimeCache::getInstance()->getObject($likeable->getUserID())); - $userEditor->updateCounters($counters); } + + $userEditor = new UserEditor(UserRuntimeCache::getInstance()->getObject($likeable->getUserID())); + $userEditor->updateCounters($counters); } }