public function actionFriendnotification()
 {
     $this->layout = 'layout_user';
     $type = 'friend';
     $notification = Notification::model()->findAll("user_id=:uid AND type = '{$type}'", array(':uid' => Yii::app()->user->userId));
     foreach ($notification as $n) {
         $n->is_read = 1;
         $n->save();
     }
     $friend = UserFriend::model()->findAll('friend_id=:uid AND is_read=0', array(':uid' => Yii::app()->user->userId));
     foreach ($friend as $n) {
         $n->is_read = 1;
         $n->save();
     }
     $this->render('shownotification', array('notification' => $notification));
 }
                <div style ="margin-top: 30px;font-size: 20px;font-weight: bolder;">
                 Notifications.
             </div>
<div class="shiftcontainer" style="width:70%;margin-top: 60px;" id="mainDiv">
    <div class="shadowcontainer">
        <div  id ="inner" class="innerdiv">
             <div id='preview'></div>
                         <?php 
if ($notification) {
    foreach ($notification as $p) {
        ?>
                
                <?php 
        if ($p->type == "friend") {
            $senderId = $p->sender_id;
            $is_friend = UserFriend::model()->find('(user_id=:uid AND friend_id=:fid) AND (status = 1)', array(':uid' => $senderId, ':fid' => $p->user_id));
            if ($is_friend) {
                $message = "is Your friend";
            } else {
                $message = $p->message;
            }
        }
        $userId = $p->sender_id;
        $user = UserProfile::model()->findByAttributes(array('user_id' => $userId));
        if (!empty($user->first_name)) {
            $userName = ucfirst($user->first_name) . ' ' . ucfirst($user->last_name);
        } else {
            $users = User::model()->findByPk($userId);
            $userName = $users['username'];
        }
        ?>
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      UserFriend $value A UserFriend object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(UserFriend $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
示例#4
0
 /**
  * 查找好友
  *
  * @param int    $user_id    //用户id
  * @param string $nickname   //查找好友昵称
  *
  */
 public function findFriend($user_id, $nickname)
 {
     $data = array();
     //查看是否有此人
     $friend_id = User::model()->getUserId($nickname);
     if ($friend_id < 1) {
         return false;
     }
     $info = Consumer::model()->getUserAll($friend_id);
     if (!empty($info)) {
         //查看是否已经建立了好友关系
         $is_exist = UserFriend::model()->isFriend($user_id, $friend_id);
         if ($is_exist) {
             $data['status'] = 1;
         } else {
             $data['status'] = 0;
         }
         $data['friend_id'] = (int) $friend_id;
         $data['face_url'] = $info['avatar'];
         $data['nickname'] = $info['nickname'];
         $data['username'] = $info['username'];
         $data['exp'] = $info['point'];
         $data['level'] = $info['level'];
     } else {
         return false;
     }
     return $data;
 }
 public function actionAllfriend()
 {
     $this->layout = 'layout_user';
     $friend = UserFriend::model()->findAll('user_id=:userId', array('userId' => Yii::app()->user->userId));
     $this->render('allfriends', array('friends' => $friend));
 }
示例#6
0
 public function countNewFriends()
 {
     //return $this->id;
     $condition = '(user_id = :uid or friend_id = :uid) and is_accepted=:is_accepted';
     return UserFriend::model()->count($condition, array(':uid' => $this->id, ':is_accepted' => UserFriend::CONTACT_ACCEPTED));
 }
示例#7
0
 /**
  * 拒绝/接受 好友邀请
  *
  * @param string $user_id
  * @param string $token
  * @param string $friend_id
  * @param string $status   1-已确认, 2-拒绝, 3-取消
  */
 public function actionInviting()
 {
     // 参数检查
     if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token']) || !isset($_REQUEST['friend_id']) || !isset($_REQUEST['status'])) {
         $this->_return('MSG_ERR_LESS_PARAM');
     }
     $user_id = trim(Yii::app()->request->getParam('user_id'));
     $token = trim(Yii::app()->request->getParam('token'));
     $status = trim(Yii::app()->request->getParam('status'));
     $friend_id = trim(Yii::app()->request->getParam('friend_id'));
     if ($status != 1 && $status != 2 && $status != 3) {
         $this->_return('MSG_ERR_FAIL_PARAM');
     }
     if (!is_numeric($user_id) || !is_numeric($friend_id)) {
         $this->_return('MSG_ERR_FAIL_PARAM');
     }
     //用户不存在 返回错误
     if ($user_id < 1) {
         $this->_return('MSG_ERR_NO_USER');
     }
     //用户不存在 返回错误
     if ($friend_id < 1) {
         $this->_return('MSG_ERR_NO_USER');
     }
     //验证token
     if (!Token::model()->verifyToken($user_id, $token, $GLOBALS['__APPID'])) {
         $this->_return('MSG_ERR_TOKEN');
     }
     $ids = array();
     $ids = UserFriend::model()->newFriendMess($user_id);
     $friend = array();
     foreach ($ids as $id) {
         $friend[] = $id['friend_user_id'];
     }
     if (!in_array($friend_id, $friend)) {
         $this->_return('MSG_ERR_NO_FRIEND_REQ');
     }
     $friend_transaction = Yii::app()->db_friend->beginTransaction();
     try {
         UserFriend::model()->updateFriend($user_id, $friend_id, $status);
         $friend_transaction->commit();
         //log 日志
         $memo = $user_id . '|' . $friend_id . '|' . $status;
         Log::model()->_user_log($user_id, 'REPLY_INVITATION', date("Y-m-d H:i:s"), $memo);
     } catch (Exception $e) {
         error_log($e);
         $friend_transaction->rollback();
         $this->_return('MSG_ERR_UNKOWN');
     }
     $this->_return('MSG_SUCCESS');
 }
示例#8
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return UserFriend the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = UserFriend::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
示例#9
0
 /**
  * 添加好友
  *
  * @param string $user_id
  * @param string $token
  * @param string $friend_id
  *
  */
 public function actionAddFriend()
 {
     // 参数检查
     if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token']) || !isset($_REQUEST['friend_id'])) {
         $this->_return('MSG_ERR_LESS_PARAM');
     }
     $now = date("Y-m-d H:i:s");
     $user_id = trim(Yii::app()->request->getParam('user_id'));
     $token = trim(Yii::app()->request->getParam('token'));
     $friend_id = trim(Yii::app()->request->getParam('friend_id'));
     if (!is_numeric($user_id)) {
         $this->_return('MSG_ERR_FAIL_PARAM');
     }
     //用户不存在 返回错误
     if ($user_id < 1) {
         $this->_return('MSG_ERR_NO_USER');
     }
     //验证token
     if (!Token::model()->verifyToken($user_id, $token, $GLOBALS['__APPID'])) {
         $this->_return('MSG_ERR_TOKEN');
     }
     //不能添加自己为好友
     if (strcmp($user_id, $friend_id) == 0) {
         $this->_return('MSG_ERR_ADD_SELF_FRIEND');
     }
     //好友用户不存在 返回错误
     if (!User::model()->getUserInfo($friend_id)) {
         $this->_return('MSG_ERR_NO_USER');
     }
     //是否已经为好友
     //$is_exist = UserFriend::model()->isFriend($user_id, $friend_id);
     //查询用户好友数量
     $friend_num = UserFriend::model()->getUerFriendNum($user_id);
     if ($friend_num >= Yii::app()->params['friend_upper_limit']) {
         $this->_return('MSG_ERR_ADD_FRIEND_NUM');
         //#
     }
     //获取好友关系
     $relation = UserFriend::model()->getFriendRelation($user_id, $friend_id);
     $now = date("Y-m-d H:i:s");
     switch ($relation) {
         case 0:
             //没有关系,插入请求
             $transaction = Yii::app()->db_friend->beginTransaction();
             try {
                 UserFriend::model()->insertFriend($user_id, $friend_id, $now);
                 // 提交事务
                 $transaction->commit();
                 //log 添加好友日志
                 $memo = $user_id . '|' . $friend_id;
                 Log::model()->_user_log($user_id, 'ADD_FRIEND', date("Y-m-d H:i:s"), $memo);
             } catch (Exception $e) {
                 error_log($e);
                 $transaction->rollback();
                 $this->_return('MSG_ERR_UNKOWN');
             }
             $this->_return('MSG_SUCCESS');
             break;
         case 1:
             //已经请求过了,就不用再请求了吧,浪费时间
             $this->_return('MSG_SUCCESS');
             break;
         case 2:
             //对方已经请求过你了, 直接设置为好友
             $transaction = Yii::app()->db_friend->beginTransaction();
             try {
                 $param1 = array('status' => '1', 'mess_read' => '1', 'update_ts' => $now);
                 $param2 = array('status' => '1', 'mess_read' => '1', 'update_ts' => $now);
                 UserFriend::model()->updateFriend2($user_id, $friend_id, $param1, $param2);
                 // 提交事务
                 $transaction->commit();
             } catch (Exception $e) {
                 error_log($e);
                 $transaction->rollback();
                 //TODO::LOG
                 $this->_return('MSG_ERR_UNKOWN');
             }
             $this->_return('MSG_SUCCESS');
             break;
         case 3:
             //已经是好友了
             $this->_return('MSG_ERR_ALEADY_FRIEND');
             break;
         case 4:
             //取消或拒绝,可以再次请求
             $transaction = Yii::app()->db_friend->beginTransaction();
             try {
                 $param1 = array('status' => '0', 'mess_read' => '1', 'update_ts' => $now);
                 $param2 = array('status' => '0', 'mess_read' => '0', 'update_ts' => $now);
                 UserFriend::model()->updateFriend2($user_id, $friend_id, $param1, $param2);
                 // 提交事务
                 $transaction->commit();
             } catch (Exception $e) {
                 error_log($e);
                 $transaction->rollback();
                 //TODO::LOG
                 $this->_return('MSG_ERR_UNKOWN');
             }
             $this->_return('MSG_SUCCESS');
             break;
         default:
             $this->_return('MSG_ERR_UNKOWN');
             break;
     }
 }
示例#10
0
 /**
  * Exclude object from result
  *
  * @param     UserFriend $userFriend Object to remove from the list of results
  *
  * @return    UserFriendQuery The current query, for fluid interface
  */
 public function prune($userFriend = null)
 {
     if ($userFriend) {
         $this->addUsingAlias(UserFriendPeer::ID, $userFriend->getId(), Criteria::NOT_EQUAL);
     }
     return $this;
 }
示例#11
0
文件: friend.php 项目: lughong/test
 public function accept($friend_id)
 {
     $friend_id = isset($friend_id) ? (int) $friend_id : 0;
     //更新信息状态
     $uid = User::getLoginUid();
     UserMsg::updateUserMsgIsReadByFriendId($friend_id, $uid);
     //该用户是否存在
     $friend_info = User::getUserInfoById($friend_id);
     if ($friend_info) {
         //是否已经是朋友
         $is_exist = UserFriend::getUserFriendInfoByFriendId($friend_id, $uid);
         if (!$is_exist) {
             $data['uid'] = $uid;
             $data['fid'] = $friend_id;
             $is_true = UserFriend::addUserFriend($data);
         }
     }
     $url = url("myweb", "friend::msg");
     header("Location:{$url}");
     throw new Exception('exit');
 }
示例#12
0
 /**
  * 赠送好友体力值
  *
  * @param int $user_id
  * @param int $friend_id
  * @param string $token
  */
 public function actionGiveVit()
 {
     // 参数检查
     if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token']) || !isset($_REQUEST['friend_id'])) {
         $this->_return('MSG_ERR_LESS_PARAM');
     }
     $user_id = trim(Yii::app()->request->getParam('user_id'));
     $token = trim(Yii::app()->request->getParam('token'));
     $friend_user_id = trim(Yii::app()->request->getParam('friend_id'));
     $now = date('Y-m-d H:i:s');
     if (!is_numeric($user_id)) {
         $this->_return('MSG_ERR_FAIL_PARAM');
     }
     //用户不存在 返回错误
     if ($user_id < 1) {
         $this->_return('MSG_ERR_NO_USER');
     }
     //好友不存在
     if ($friend_user_id < 1) {
         $this->_return('MSG_ERR_NO_USER');
     }
     //验证token
     if (!Token::model()->verifyToken($user_id, $token, $GLOBALS['__APPID'])) {
         $this->_return('MSG_ERR_TOKEN');
         //#token 错误
     }
     //是否已经为好友
     $is_exist = UserFriend::model()->isFriend($user_id, $friend_user_id);
     if ($is_exist != 1) {
         //对方未确认为好友
         $this->_return('MSG_ERR_NO_FRIEND');
     }
     //获取最近一次赠送此好友的时间
     $vit_time = UserFriend::model()->getVitTime($user_id, $friend_user_id);
     if ($vit_time > 0) {
         //查询今天是否已经赠送好友的次数超过上线
         $VitNum = UserFriend::model()->getGiveVitNum($user_id);
         if ($VitNum >= Yii::app()->params['every_give_vit_upper_limit']) {
             $this->_return('MSG_ERR_GIVE_VIT_COUNT');
             //#
         }
         if (strcmp(date('Ymd'), date('Ymd', intval($vit_time))) == 0) {
             $list = FriendVit::model()->getUserVit($user_id, $friend_user_id);
             if ($list) {
                 //今天已经送过了
                 $this->_return('MSG_ERR_FAIL_GIVINGVIT');
             }
         }
         //获取个人信息拿到经验值
         $characters_info = Characters::model()->getCharactersInfo($user_id);
         if (isset($characters_info['exp'])) {
             if ($lv = Level::model()->exp2Level($characters_info['exp'])) {
                 $level_info = Level::model()->getLevelRow($lv);
                 $giving = $level_info['vit_per_giving'];
                 $param = array('user_id' => $friend_user_id, 'friend_user_id' => $user_id, 'vit' => $giving, 'status' => 0, 'giving_time' => date('Ymd'), 'create_ts' => time());
                 $friend_transaction = Yii::app()->db_friend->beginTransaction();
                 $vit_transaction = Yii::app()->db_friend_vit->beginTransaction();
                 try {
                     //更新最新的赠送时间
                     UserFriend::model()->updateFriendRow($user_id, $friend_user_id, array('last_give_vit_ts' => time()));
                     //更新体力消息
                     FriendVit::model()->insertFriendRow($friend_user_id, $param);
                     $friend_transaction->commit();
                     $vit_transaction->commit();
                 } catch (Exception $e) {
                     error_log($e);
                     $friend_transaction->rollback();
                     $vit_transaction->rollback();
                     $this->_return('MSG_ERR_UNKOWN');
                 }
                 //体力日志
                 //送体力成功
                 $this->_return('MSG_SUCCESS');
             }
         }
     }
     $this->_return('MSG_ERR_UNKOWN');
 }