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']; } ?>
/** * 查找好友 * * @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)); }
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)); }
/** * 拒绝/接受 好友邀请 * * @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'); }
/** * 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; }
/** * 添加好友 * * @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; } }
/** * 赠送好友体力值 * * @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'); }