Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
 /**
  * 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");
 }
Ejemplo n.º 3
0
 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();
 }