Exemplo n.º 1
0
 /**
  * API:用户注册
  *
  * @access public
  * @param 无
  * @return JsonView 响应json
  */
 public function exeUserRegister()
 {
     $requestParam = $this->getAllParameters();
     Logger::debug('requestParam:' . print_r($requestParam, true));
     $requestJsonParam = $this->getDecodedJsonRequest();
     Logger::debug('requestJsonParam:' . print_r($requestJsonParam, true));
     // 检测账号是否重复
     $ret = AuthModel::checkUserAccount($requestJsonParam['account']);
     if (!$ret) {
         $view = new JsonView();
         $messageArr['error'] = "该账号已存在";
         return $this->getViewByJson($view, $messageArr, 0, "auth/user_register");
     }
     // 检测账号是否重复
     $ret = AuthModel::checkUserName($requestJsonParam['user_name']);
     if (!$ret) {
         $view = new JsonView();
         $messageArr['error'] = "该昵称已存在";
         return $this->getViewByJson($view, $messageArr, 0, "auth/user_register");
     }
     // 插入新用户
     $ret = AuthModel::insert(array('s_account' => $requestJsonParam['account'], 's_password' => $requestJsonParam['password'], 't_create_time' => date("Y-m-d H:i:s")), $pdo);
     if (is_null($ret)) {
         throw new ModelException('insert false pa_user_master');
     }
     //---------------------------- 初始用户表 ----------------------------
     $user_id = AuthModel::getUserID($requestJsonParam['account'], $requestJsonParam['password'], $pdo);
     $messageArr['n_id'] = $user_id;
     self::$userBasicIni['s_name'] = $requestJsonParam['user_name'];
     self::$userBasicIni['n_sex'] = $requestJsonParam['sex'];
     self::$userBasicIni['t_create_time'] = date("Y-m-d H:i:s");
     // 初始化关卡信息
     $checkPointIni = array(1 => array('score' => 0, 'scr_length' => 0, 'reward' => 0, 'kill_num' => 0, 'star_num' => 0));
     //self::$userBasicIni['s_checkpoint_info'] = serialize( $checkPointIni );
     // 初始化角色信息
     self::$userBasicIni['s_role_info '] = CharacterAction::registCharacter($user_id, Constants::INI_CHARACTER_ID);
     // 初始化武将信息
     self::$userBasicIni['s_general_info'] = GeneralAction::registGeneral($user_id, Constants::INI_GENERAL_ID);
     // 初始化任务信息
     self::$userBasicIni['s_task_info'] = serialize(TaskAndAchieveAction::randTask($user_id));
     // 初始化成就信息
     self::$userBasicIni['s_achievement_info'] = TaskAndAchieveAction::registAchieveCsv($user_id);
     // 初始化签到信息
     $loginInfo = UserAction::getUserLoginInfo();
     self::$userBasicIni['s_login_info'] = serialize($loginInfo);
     $userInfo = array_merge($messageArr, self::$userBasicIni);
     $ret = UserModel::insert($userInfo, $pdo);
     FriendModel::insert(array('n_user_id' => $user_id, 'n_friend_id' => Constants::ROBERT, 't_create_time' => date("Y-m-d H:i:s")));
     $battle = UserAction::getUserbattle($user_id);
     UserModel::update(array('n_battle' => $battle), array('n_id' => $user_id));
     MailAction::sendSystemMail($user_id);
     if (is_null($ret)) {
         throw new ModelException('insert false pa_user_master');
     }
     // // 成就
     // $statisticArr['login_day'] = 1;
     // TaskAndAchieveAction::achieveStatistic( $user_id, $statisticArr );
     $userInfo = array_merge($messageArr, self::$userBasicIni);
     $session_key = CharacterModel::setSessionKey($user_id, $session_key);
     $messageArr['total_day'] = $loginInfo['total_day'];
     $messageArr['session_key'] = $session_key;
     $view = new JsonView();
     return $this->getViewByJson($view, $messageArr, 1, "auth/user_register");
 }
Exemplo n.º 2
0
 /**
  * API:同意添加好友
  *
  * @access public
  * @param 无
  * @return JsonView 响应json
  */
 public function exeAgreeFriend()
 {
     $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/agree_friend");
     }
     //好友人数上限判断
     $friendNum = FriendModel::getFriendNum($user_id);
     if ($friendNum >= Constants::MAX_FRIEND_NUM) {
         $messageArr['error'] = "好友数已达上限!";
         $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key);
         $view = new JsonView();
         return $this->getViewByJson($view, $messageArr, 0, "friend/agree_friend");
     }
     $res = FriendModel::insert(array('n_user_id' => $user_id, 'n_friend_id' => $friend_id, 't_create_time' => date("Y-m-d H:i:s")));
     if (!$res) {
         throw new Exception("insert false");
     }
     $res = FriendModel::updateFriendMail(array('n_type' => 0, 't_update_time' => date("Y-m-d H:i:s")), array('n_send_id' => $friend_id, 'n_receive_id' => $user_id, 'n_type' => 1));
     $res = FriendModel::insertMail(array('n_send_id' => $user_id, 'n_receive_id' => $friend_id, 'n_type' => 3, 't_update_time' => date("Y-m-d H:i:s"), 't_create_time' => date("Y-m-d H:i:s")));
     if (!$res) {
         throw new Exception("update false");
     }
     $str = $user_id . '_friend';
     $friendInfo = FriendModel::getFriendList($user_id);
     foreach ($friendInfo as $key => $value) {
         $friendList[] = $value['n_id'];
     }
     UserCache::setByKey($str, 'friend_list', $friendList);
     $messageArr['friend_mail'] = MailModel::getFriendMail($user_id);
     $messageArr['system_mail'] = MailModel::getSystemMail($user_id);
     //任务成就界面
     $messageArr['achieveInfo'] = TaskAndAchieveAction::getAchieveInfo($user_id);
     $messageArr['taskInfo'] = TaskAndAchieveAction::getTaskInfo($user_id);
     $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key);
     $view = new JsonView();
     return $this->getViewByJson($view, $messageArr, 1, "friend/agree_friend");
 }