Exemple #1
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;
 }
 /**
  * 查找好友
  *
  * @param string $user_id
  * @param string $token
  * @param string $find_username
  * @param int    $page
  * @param int    $page_size
  *
  */
 public function actionFindFriend()
 {
     // 参数检查
     if (!isset($_REQUEST['user_id']) || !isset($_REQUEST['token']) || !isset($_REQUEST['find_username'])) {
         $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'));
     $find_username = trim(Yii::app()->request->getParam('find_username'));
     $page = trim(Yii::app()->request->getParam('page'));
     $page_size = (int) trim(Yii::app()->request->getParam('page_size'));
     if (empty($page)) {
         $page = 1;
     }
     if (empty($page_size)) {
         $page_size = 10;
     }
     if ($page_size > 20) {
         $this->_return('MSG_ERR_FAIL_PARAM');
     }
     $start = ($page - 1) * $page_size;
     //$page 大小范围 $page_size 大小范围
     if (empty($find_username)) {
         $this->_return('MSG_ERR_FAIL_PARAM');
     }
     $find_username = mb_substr($find_username, 0, 20, 'utf-8');
     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'])) {
         //LOG
         $this->_return('MSG_ERR_TOKEN');
     }
     $info = array();
     //获取用户列表
     $info[] = User::model()->findFriend($user_id, $find_username);
     ############################### 模糊
     if (empty($info[0])) {
         $info = array();
         $data = array();
         //查看是否有此人
         $ids = User::model()->fuzzy($find_username, $start, $page_size);
         //             echo '<pre>';
         //             print_r($ids);exit;
         foreach ($ids as $id) {
             $uinfo = Consumer::model()->getUserAll($id);
             if (!empty($uinfo)) {
                 //查看是否已经建立了好友关系
                 $is_exist = UserFriend::model()->isFriend($user_id, $id);
                 if ($is_exist) {
                     $data['status'] = 1;
                 } else {
                     $data['status'] = 0;
                 }
                 $data['friend_id'] = $id;
                 $data['face_url'] = $uinfo['avatar'];
                 $data['nickname'] = $uinfo['nickname'];
                 $data['username'] = $uinfo['username'];
                 $data['exp'] = $uinfo['point'];
                 $data['level'] = $uinfo['level'];
                 $info[] = $data;
             }
         }
     }
     ###############################
     $this->_return('MSG_SUCCESS', $info);
 }