public function addReputation($addReputation) { $user = User::thisUser(); $modelUserId = $this->user_id; $paramsSelf = ['entity' => self::THIS_ENTITY, 'schoolId' => $this->id, 'userId' => $user->id]; $paramsOther = ['entity' => self::THIS_ENTITY, 'schoolId' => $this->id, 'userId' => $modelUserId]; if ($addReputation == VoteModel::ADD_REPUTATION_CANCEL_UP) { // - хозяину события за отмену лайка Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_LIKE_SELF_SCHOOL_CANCEL, $paramsSelf); } elseif ($addReputation == VoteModel::ADD_REPUTATION_UP) { // + хозяину события за лайк Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_LIKE_SELF_SCHOOL, $paramsSelf); // Если раньше не было оценки, пользователь ставит лайк и его репутация маленькая, тогда добавим ему репутации if ($user->reputation < self::MAX_REPUTATION_FOR_ADD_REPUTATION_SCHOOL_VOTE_LIKE && $user->reputation > self::MIN_REPUTATION_FOR_ADD_REPUTATION_SCHOOL_VOTE_LIKE) { // + текущему пользователю за лайк Reputation::addReputation($user->id, Reputation::ENTITY_VOTE_LIKE_OTHER_SCHOOL, $paramsOther); } } elseif ($addReputation == VoteModel::ADD_REPUTATION_CANCEL_DOWN) { // + хозяину события за отмену дизлайка Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_DISLIKE_SELF_SCHOOL_CANCEL, $paramsSelf); // + текущему пользователю за отмену дизлайка Reputation::addReputation($user->id, Reputation::ENTITY_VOTE_DISLIKE_OTHER_SCHOOL_CANCEL, $paramsOther); } elseif ($addReputation == VoteModel::ADD_REPUTATION_DOWN) { // - хозяину события за дизлайк Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_DISLIKE_SELF_SCHOOL, $paramsSelf); // - текущему пользователю за дизлайк Reputation::addReputation($user->id, Reputation::ENTITY_VOTE_DISLIKE_OTHER_SCHOOL, $paramsOther); } }
public function addReputation($addReputation) { $user = User::thisUser(); $modelUserId = $this->user_id; $paramsSelf = ['entity' => self::THIS_ENTITY, 'itemId' => $this->id, 'userId' => $user->id]; $paramsOther = ['entity' => self::THIS_ENTITY, 'itemId' => $this->id, 'userId' => $modelUserId]; if ($addReputation == VoteModel::ADD_REPUTATION_CANCEL_UP) { // - хозяину записи за отмену лайка Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_LIKE_SELF_COMMENT_CANCEL, $paramsSelf); } elseif ($addReputation == VoteModel::ADD_REPUTATION_UP) { // + хозяину записи за лайк Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_LIKE_SELF_COMMENT, $paramsSelf); } elseif ($addReputation == VoteModel::ADD_REPUTATION_CANCEL_DOWN) { // + хозяину записи за отмену дизлайка Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_DISLIKE_SELF_COMMENT_CANCEL, $paramsSelf); } elseif ($addReputation == VoteModel::ADD_REPUTATION_DOWN) { // - хозяину записи за дизлайк Reputation::addReputation($modelUserId, Reputation::ENTITY_VOTE_DISLIKE_SELF_COMMENT, $paramsSelf); } }
/** * @param null $userId Кому изменить * @param string $entity Действие * @param array $params Дополнительные параметры * * @return bool */ public static function addReputation($userId = null, $entity = self::ENTITY_NONE, $params = []) { if (empty($userId) || $entity == self::ENTITY_VOTE_DISLIKE_OTHER_ITEM || !($findUser = User::findOne([$userId]))) { $findUser = User::thisUser(); $userId = $findUser->id; } if (empty($findUser)) { return false; } $pItemId = '?'; $itemIdKeys = ['itemId', 'eventId', 'schoolId', 'id']; foreach ($itemIdKeys as $itemIdKey) { if (isset($params[$itemIdKey])) { $pItemId = $params[$itemIdKey]; break; } } $pUserId = $params['userId'] ? $params['userId'] : '?'; if ($pUserId == $userId && in_array($entity, self::notSelfChange())) { return false; } if ($entity == self::ENTITY_VOTE_LIKE_SELF_ITEM) { $params['msg'] = "Запись {$pItemId} понравилась пользователю {$pUserId}."; $params['value'] = 5; } else { if ($entity == self::ENTITY_VOTE_LIKE_SELF_ITEM_CANCEL) { $params['msg'] = "Отмена: Запись {$pItemId} понравилась пользователю {$pUserId}."; $params['value'] = -5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_ITEM) { $params['msg'] = "Запись {$pItemId} не понравилась пользователю {$pUserId}."; $params['value'] = -5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_ITEM_CANCEL) { $params['msg'] = "Отмена: Запись {$pItemId} не понравилась пользователю {$pUserId}."; $params['value'] = 5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_OTHER_ITEM) { $params['msg'] = "Не понравилась запись {$pItemId}."; $params['value'] = -1; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_OTHER_ITEM_CANCEL) { $params['msg'] = "Отмена: Не понравилась запись {$pItemId}."; $params['value'] = 1; } else { if ($entity == self::ENTITY_VOTE_LIKE_OTHER_ITEM) { $params['msg'] = "Понравилась запись {$pItemId}."; $params['value'] = 1; } else { if ($entity == self::ENTITY_VOTE_LIKE_SELF_EVENT) { $params['msg'] = "Событие {$pItemId} понравилась пользователю {$pUserId}."; $params['value'] = 5; } else { if ($entity == self::ENTITY_VOTE_LIKE_SELF_EVENT_CANCEL) { $params['msg'] = "Отмена: Событие {$pItemId} понравилась пользователю {$pUserId}."; $params['value'] = -5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_EVENT) { $params['msg'] = "Событие {$pItemId} не понравилась пользователю {$pUserId}."; $params['value'] = -5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_EVENT_CANCEL) { $params['msg'] = "Отмена: Событие {$pItemId} не понравилась пользователю {$pUserId}."; $params['value'] = 5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_OTHER_EVENT) { $params['msg'] = "Не понравилось событие {$pItemId}."; $params['value'] = -1; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_OTHER_EVENT_CANCEL) { $params['msg'] = "Отмена: Не понравилось событие {$pItemId}."; $params['value'] = 1; } else { if ($entity == self::ENTITY_VOTE_LIKE_OTHER_EVENT) { $params['msg'] = "Понравилось событие {$pItemId}."; $params['value'] = 1; } else { if ($entity == self::ENTITY_VOTE_LIKE_SELF_SCHOOL) { $params['msg'] = "Школа {$pItemId} понравилась пользователю {$pUserId}."; $params['value'] = 5; } else { if ($entity == self::ENTITY_VOTE_LIKE_SELF_SCHOOL_CANCEL) { $params['msg'] = "Отмена: Школа {$pItemId} понравилась пользователю {$pUserId}."; $params['value'] = -5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_SCHOOL) { $params['msg'] = "Школа {$pItemId} не понравилась пользователю {$pUserId}."; $params['value'] = -5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_SCHOOL_CANCEL) { $params['msg'] = "Отмена: Школа {$pItemId} не понравилась пользователю {$pUserId}."; $params['value'] = 5; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_OTHER_SCHOOL) { $params['msg'] = "Не понравилась школа {$pItemId}."; $params['value'] = -1; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_OTHER_SCHOOL_CANCEL) { $params['msg'] = "Отмена: Не понравилась школа {$pItemId}."; $params['value'] = 1; } else { if ($entity == self::ENTITY_VOTE_LIKE_OTHER_SCHOOL) { $params['msg'] = "Понравилась школа {$pItemId}."; $params['value'] = 1; } else { if ($entity == self::ENTITY_VOTE_LIKE_SELF_COMMENT) { $params['msg'] = "Комментарий {$pItemId} понравился пользователю {$pUserId}."; $params['value'] = 1; } else { if ($entity == self::ENTITY_VOTE_LIKE_SELF_COMMENT_CANCEL) { $params['msg'] = "Отмена: Комментарий {$pItemId} понравился пользователю {$pUserId}."; $params['value'] = -1; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_COMMENT) { $params['msg'] = "Комментарий {$pItemId} не понравился пользователю {$pUserId}."; $params['value'] = -1; } else { if ($entity == self::ENTITY_VOTE_DISLIKE_SELF_COMMENT_CANCEL) { $params['msg'] = "Отмена: Комментарий {$pItemId} не понравился пользователю {$pUserId}."; $params['value'] = 1; } } } } } } } } } } } } } } } } } } } } } } } } } $reputation = new Reputation(); $reputation->user_id = $userId; $reputation->msg = isset($params['msg']) ? $params['msg'] : ''; $reputation->value = isset($params['value']) ? $params['value'] : 0; $reputation->entity = $params['entity']; $reputation->save(); $findUser->reputation += $reputation->value; $findUser->save(); }