Ejemplo n.º 1
0
 public function doLoginAction()
 {
     if (empty($this->postData)) {
         $ad = $this->adModel->getAdByPosition(BaseConst::AD_POSITION_LOGIN_AD);
         $ad = current($ad);
         $this->view->setVariables(array('ad' => $ad));
         return $this->view;
     }
     $mobile = $this->postData['mobile'];
     $password = $this->postData['password'];
     $rememberMe = $this->postData['rememberMe'];
     if (empty($mobile) || empty($password)) {
         return $this->response(ApiError::PARAMETER_MISSING, ApiError::PARAMETER_MISSING_MSG);
     }
     if (!$this->validateMobile($mobile)) {
         return $this->response(ApiError::MOBILE_VALIDATE_FAILED, ApiError::MOBILE_VALIDATE_FAILED_MSG);
     }
     $select = $this->memberModel->getSelect();
     $select->join(array('b' => 'MemberInfo'), 'Member.memberID = b.memberID')->where(array('Member.mobile' => $mobile, 'Member.password' => $this->memberModel->genPassword($password)));
     $memberInfo = $this->memberModel->selectWith($select)->current();
     if (!empty($memberInfo)) {
         if (!$this->memberInfoModel->isAvailable($memberInfo)) {
             return $this->response(ApiError::COMMON_ERROR, '账号被封停');
         }
         $loginSession = new Session(self::FRONT_PLATFORM, null, null);
         $loginSession->write($memberInfo);
         if ($rememberMe) {
             $autoCode = md5($memberInfo['memberID'] . Utility::getRandCode(6));
             setcookie('autoCode', $autoCode, strtotime('+1 year'), '/');
             $this->memberInfoModel->update(array('autoCode' => $autoCode), array('memberID' => $memberInfo['memberID']));
         } else {
             setcookie('autoCode', '', time() - 1, '/');
         }
         return $this->response(ApiSuccess::COMMON_SUCCESS, ApiSuccess::COMMON_SUCCESS_MSG, $memberInfo);
     } else {
         return $this->response(ApiError::LOGIN_FAILED, ApiError::LOGIN_FAILED_MSG);
     }
 }