public static function saveAnswer($request) { $userId = Yii::app()->user->id; if ($userId && isset($request['answerId'])) { $currentAnswer = Answers::model()->current()->find('userId=?', [$userId]); if ($currentAnswer) { $currentAnswer->isCurrent = false; if ($request['answerId'] != $currentAnswer->dictonaryId) { $currentAnswer->isError = true; $errAns = new ErrorAnswers(); $errAns->userId = $userId; $errAns->dictonaryId = $currentAnswer->dictonaryId; $errAns->answerId = $request['answerId']; if ($errAns->save()) { return ['success' => true, 'reenter' => true, 'error' => $currentAnswer->isError]; Yii::app()->end(); } else { var_dump($errAns->getErrors()); } } else { $currentAnswer->isOk = true; } if ($currentAnswer->save()) { return ['success' => true, 'reenter' => false, 'question' => Dictonary::getQuestion($userId), 'error' => $currentAnswer->isError, 'ok' => $currentAnswer->isOk]; Yii::app()->end(); } else { var_dump($currentAnswer->getErrors()); } } } return ['success' => false, 'error' => 'ошибка при сохранении ответа']; }
/** * This is the default 'index' action that is invoked * when an action is not explicitly requested by users. */ public function actionIndex() { //echo CJSON::encode(Dictonary::getQuestion(1)); // exit(); $user = ['login' => false]; if (!Yii::app()->user->getId()) { $model = new LoginForm(); $model->attributes = ['username' => isset(Yii::app()->request->cookies['name']->value) ? Yii::app()->request->cookies['name']->value : '', 'password' => isset(Yii::app()->request->cookies['uuid']->value) ? Yii::app()->request->cookies['uuid']->value : '']; if ($model->validate() && $model->login()) { $user = ['uuid' => Yii::app()->user->getState('uuid'), 'name' => Yii::app()->user->name, 'login' => true]; } } else { $user = ['uuid' => Yii::app()->user->getState('uuid'), 'name' => Yii::app()->user->name, 'login' => true]; } if (isset($user['uuid'])) { $this->render('index', ['data' => ['user' => $user, 'countQuestions' => Yii::app()->db->createCommand('SELECT count(id) FROM Dictonary')->queryScalar(), 'current' => Answers::getCount(Yii::app()->user->id, Answers::FLAG_CURRENT), 'error' => ErrorAnswers::getCount(Yii::app()->user->id), 'ok' => Answers::getCount(Yii::app()->user->id, Answers::FLAG_OK), 'question' => Dictonary::getQuestion(Yii::app()->user->id)]]); } else { $this->render('index', ['data' => ['user' => $user, 'countQuestions' => Yii::app()->db->createCommand('SELECT count(id) FROM Dictonary')->queryScalar(), 'current' => 0, 'error' => 0, 'ok' => 0, 'question' => false]]); } }
public static function createUser($request) { if (isset($request['name'])) { $model = Users::model()->find('LOWER(name)=?', [$request['name']]); if (!$model) { $model = new Users(); $model->name = $request['name']; if (!$model->save()) { return ['success' => false, 'error' => CVarDumper::dumpAsString($model->getErrors())]; Yii::app()->end(); } } $model->setCookies(); $login = new LoginForm(); $login->attributes = ['username' => $model->name, 'password' => $model->uuid]; if ($login->validate() && $login->login()) { return ['success' => true, 'user' => ['uuid' => $model->uuid, 'name' => $model->name, 'login' => true], 'question' => Dictonary::getQuestion($model->id), 'error' => ErrorAnswers::getCount($model->id), 'ok' => Answers::getCount($model->id, Answers::FLAG_OK)]; } } return ['success' => false, 'error' => 'Не смогли получить данные']; }
public function actionGetQuestion() { echo CJSON::encode(Dictonary::getQuestion(Yii::app()->user->id)); }