function __construct(IManager $autorization) { $this->_dbUser = new UserModel(); if ($autorization->needAutorization() === true) { $session = Project::getSession(); $logged = $session->getKey('logged', false); if ($logged) { $this->_guest = false; $this->_dbUser->load($session->getKey('logged_user_id')); $this->_is_admin = $this->_dbUser->user_type_id == 1 ? true : false; } else { $this->_guest = true; } } else { $this->_guest = true; } $username = Project::getRequest()->getUsername(); $this->_showed_user = new UserModel(); if ($username) { $this->_showed_user->loadByLogin($username); if ((int) $this->_showed_user->id > 0) { if ($this->_showed_user->id == $this->_dbUser->id) { $this->_is_my_area = true; $this->_is_friend = true; } else { $friend_model = new FriendModel(); $friend_id = (int) $friend_model->isFriend($this->_showed_user->id, $this->_dbUser->id); if ($friend_id == $this->_dbUser->id) { $this->_is_friend = true; } } } } if ($this->_is_admin) { $this->_is_my_area = true; } }
/** * API:更新合体时间 * * @access public * @param 无 * @return JsonView 响应json */ public function exeUpdateFitTime() { $requestParam = $this->getAllParameters(); Logger::debug('requestParam:' . print_r($requestParam, true)); $requestJsonParam = $this->getDecodedJsonRequest(); Logger::debug('requestJsonParam:' . print_r($requestJsonParam, true)); $user_id = $requestParam['user_id']; $friend_id = $requestJsonParam['friend_id']; $session_key = $requestParam['session_key']; //判断是否已为好友关系 $ret = FriendModel::isFriend($user_id, $friend_id); if (!$ret) { $messageArr['error'] = "非好友关系!"; $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 0, "friend/update_fit_time"); } $fitTime = FriendModel::fitFriend($user_id); foreach ($fitTime as $key => $value) { if ($value['n_id'] == $friend_id) { $time = $value['time']; $fit_num = $value['num'] + 1; } } $nowTime = time(); //冷却时间未到,扣除金钱 if ($time > $nowTime) { $price_type = array(1 => 'n_coin', 2 => 'n_diamond'); $costInfo = FriendAction::getFitCostInfo($friend_id, $fit_num); $type = $price_type[$costInfo['price_type']]; $price = $costInfo['price']; $money = UserCache::getByKey($user_id, $type); if (!$money) { $userInfo = FriendModel::getUserInfo($user_id); $money = $userInfo[$type]; } $money = $money - $price; if ($money < 0) { $messageArr['error'] = "人生果/钻石不足!"; $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 0, "friend/update_fit_time"); } $ret = CharacterModel::update(array($type => $money), array('n_id' => $user_id)); FriendModel::updateFitNum($user_id, $friend_id); UserCache::setByKey($user_id, $type, $money); } else { $ret = FriendModel::fitTime($user_id, $friend_id); } //任务成就统计 TaskAndAchieveAction::taskStatistic($user_id, array('friend_help' => 1)); TaskAndAchieveAction::achieveStatistic($user_id, array('friend_help' => 1)); $friendInfo = FriendModel::getUserInfo($friend_id); $messageArr = CharacterAction::getFitBattleInfo($user_id, $friendInfo['n_battle']); $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 1, "friend/update_fit_time"); }
public function FriendAction() { $request = Project::getRequest(); $this->_view->clearFlashMessages(); $user = Project::getUser()->getDbUser(); $userModel = new UserModel(); $friendModel = new FriendModel(); $messagesModel = new MessagesModel(); $isDefAction = true; //$this -> _view -> addFlashMessage(FM::ERROR, "Выберите из списка друзей или введите имя вручную"); if ($request->messageAction == "changeGroup") { $group_id = $request->group_id; $friendGroup = $friendModel->getFriendGroupById($group_id); if ($friendGroup) { $isDefAction = false; if ($request->save_group) { $group_name = $request->group_name; if (!$friendModel->isDublicateGroup($user->id, htmlspecialchars($group_name))) { $friendModel->changeOneValue('friend_group', $group_id, 'name', htmlspecialchars($group_name)); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $this->_view->addFlashMessage(FM::ERROR, "Группа с таким именем уже существует"); } } elseif ($request->del_group) { $friendModel->changeFriendsGroup($user->id, $group_id, 0); $friendModel->delOneRecord('friend_group', $group_id); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $group_name = $friendGroup['name']; } $this->_view->assign('pageAction', 'changeGroup'); $this->_view->assign('groupName', $group_name); } $this->_view->assign('group_id', $group_id); } elseif ($request->messageAction == "changeFriend") { $friend_table_id = $request->friend_table_id; $friend = $friendModel->getFriendById($friend_table_id); if ($friend) { if ($request->save_friend) { $friendModel->load($friend_table_id); $friendModel->group_id = $request->group_id; $friendModel->note = htmlspecialchars($request->note); $friendModel->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } $isDefAction = false; $this->_view->assign('pageAction', 'changeFriend'); $this->_view->assign('friend', $friend); $this->_view->assign('aFriendGroups', $friendModel->getUserFriendGroups($user->id)); } } elseif ($request->messageAction == "addGroupFriend") { if ($request->add_group) { if (!$friendModel->isDublicateGroup($user->id, htmlspecialchars($request->group_name))) { $friendModel->addFriendGroup($user->id, $request->group_name, null); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $this->_view->addFlashMessage(null, "Группа с таким именем уже существует"); } } elseif ($request->add_friend) { $friend = $userModel->getUserByLogin($request->friend_name); if ($friend && $friendModel->isFriend($user->id, $friend['id'])) { $this->_view->addFlashMessage(FM::ERROR, "Этот пользователь уже добавлен в Ваши друзья"); } elseif ($friend) { $friendModel->load(0); $friendModel->friend_id = $friend['id']; $friendModel->user_id = $user->id; $friendModel->group_id = 0; $friendModel->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $this->_view->addFlashMessage(FM::ERROR, "Пользователя с таким именем нет"); } } } if ($isDefAction) { $this->_view->assign('pageAction', 'main'); } $aGroupMessagesCount = array(); $aGroupMessagesCount['all'] = array("new" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 0), "read" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 1)); $this->_view->assign('aGroupMessagesCount', $aGroupMessagesCount); $aFriendGroups = $friendModel->getUserFriendGroups($user->id); $this->_view->assign('tab_list', TabController::getOwnTabs(false, true, false, false, false, false, false, false, false, false)); $this->_view->assign('aFriendGroups', $aFriendGroups); $this->_view->assign('user_id', $user->id); $this->_view->FriendPage(); $this->_view->parse(); }