public function __construct($data) { foreach ($data as $k => $v) { switch (strtolower($k)) { case 'currstatus': $this->{$k} = new ClaimStatus($v); break; case 'service': $this->{$k} = new Service($v); break; default: $this->{$k} = $v; break; } } if (is_array($this->persons)) { $this->personsData = RlddConnect::findPersonsByIds($this->persons); } }
/** * Логин * @return JSON * {FIELD_NAME:error,...} ошибки по полям * {error, errmsg} внутренняя ошибка (error-текст для отображения, errmsg-внутренний текст) * {result:ID, msg} id персоны и текст сообщения */ public function actionLogin() { if (!Yii::app()->request->isAjaxRequest) { throw new CHttpException(404); } $login = Yii::app()->request->getPost('login', ''); $password = Yii::app()->request->getPost('password', ''); $email = Yii::app()->request->getPost('email', ''); // Обязательные параметры $errors = array(); if (empty($login)) { $errors['login'] = Yii::t('rlddError', 'Не задан логин'); } if (!empty($errors)) { header('HTTP/1.1 400 Params error'); echo json_encode($errors); Yii::app()->end(); } // Создаем пользователя $params = array('login' => $login); if (!empty($password)) { $params['password'] = $password; } if (!empty($email)) { $params['email'] = $email; } $res = RlddConnect::getPerson($params); if (isset($res['errmsg'])) { // Пользователь не найден if (strpos(strtolower($res['errmsg']), RlddConnect::ERROR_PERSON_NOT_FOUND) !== false) { header('HTTP/1.1 400 User error'); echo json_encode(array('error' => Yii::t('rlddError', 'Пользователь не найден'), 'errmsg' => $res['errmsg'])); Yii::app()->end(); } // Несколько пользователей под одним логином if (strpos(strtolower($res['errmsg']), RlddConnect::ERROR_PERSON_DUPLICATE) !== false) { header('HTTP/1.1 400 User error'); echo json_encode(array('error' => Yii::t('rlddError', 'Не хватает данных для входа. Попробуйте заполнить остальные поля.'), 'errmsg' => $res['errmsg'])); Yii::app()->end(); } } echo json_encode(array('personId' => $res['result'], 'msg' => '')); Yii::app()->end(); }
/** * Получить заявки пользователя */ public function actionClaims() { $page = Yii::app()->request->getQuery('page', 1); $size = 200; $personId = Yii::app()->session['personId']; if (!$personId) { Yii::app()->request->redirect(CHtml::normalizeUrl(array('/rldd/rldd/index'))); } $res = RlddConnect::findClaimsByPersons(array($personId), $page - 1, $size); $criteria = new CDbCriteria(); $criteria->offset = $page * $size; $criteria->limit = $size; $pages = new CPagination($res['page']['totalElements']); $pages->pageSize = $size; $pages->applyLimit($criteria); $pages->currentPage = $page - 1; $this->render('/claims', array('claims' => $res['claims'], 'pages' => $pages)); }