Beispiel #1
0
 /**
  * API:用户登陆
  *
  * @access public
  * @param 无
  * @return JsonView 响应json
  */
 public function exeUserLogin()
 {
     $requestParam = $this->getAllParameters();
     Logger::debug('requestParam:' . print_r($requestParam, true));
     $requestJsonParam = $this->getDecodedJsonRequest();
     Logger::debug('requestJsonParam:' . print_r($requestJsonParam, true));
     // 获取用户id
     $user_id = AuthModel::getUserID($requestJsonParam['account'], $requestJsonParam['password'], $pdo);
     if (!$user_id) {
         $view = new JsonView();
         $messageArr['error'] = "密码不正确,请重新输入";
         return $this->getViewByJson($view, $messageArr, 0, "auth/user_login");
     }
     // 初始化缓存
     $userInfo = UserAction::iniUserInfo($user_id);
     $loginInfo = UserAction::getUserLoginInfo($userInfo['s_login_info']);
     if ($loginInfo != false) {
         $taskInfo = TaskAndAchieveAction::randTask($user_id);
         $updateArr['s_login_info'] = serialize($loginInfo);
         $updateArr['s_task_info'] = serialize($taskInfo);
         UserCache::setByKey($user_id, 's_login_info', $loginInfo);
         UserCache::setByKey($user_id, 's_task_info', $taskInfo);
         $userInfo['s_login_info'] = $loginInfo;
         $userInfo['s_task_info'] = $taskInfo;
         UserModel::update($updateArr, $user = array('n_id' => $user_id), $pdo);
         //清零合体次数
         FriendModel::clearFitNum($user_id);
         // // 成就
         // $statisticArr['login_day'] = 1;
         // TaskAndAchieveAction::achieveStatistic( $user_id, $statisticArr );
     }
     //$user_id = $requestParam['user_id'];
     //$userInfo = AuthModel::getUserInfo( $user_id, $pdo );
     // 生成缓存
     $newSessionKey = Util::generateSessionKey($user_id);
     $oldSessionKey = $requestParam['session_key'];
     Logger::debug('SessionKey1:' . $oldSessionKey);
     Logger::debug('SessionKey2:' . $newSessionKey);
     UserCache::setByKey($user_id, Constants::PREVIOUS_SESSION_KEY, $oldSessionKey);
     UserCache::setByKey($user_id, Constants::CURRENT_SESSION_KEY, $newSessionKey);
     //UserCache::setByKey($user_id, 'userInfo', $userInfo);
     //$messageArr['user'] = $userInfo;
     $messageArr['n_id'] = $user_id;
     $messageArr['total_day'] = $userInfo['s_login_info']['total_day'];
     $messageArr['session_key'] = $newSessionKey;
     $view = new JsonView();
     return $this->getViewByJson($view, $messageArr, 1, "auth/user_login");
 }