Exemplo n.º 1
0
 /**
  * 奇趣测试回答
  */
 public function actionStep1($id)
 {
     $this->layout = false;
     $model = Survey::findOne($id);
     if (!$model) {
         //没找到
         $model = new Survey();
     }
     if ($model->is_publish < 1) {
         $this->popupMessage($model->title . '未发布,不能测试');
         exit;
     }
     $data = $model->FindAllQuestionsOptions($id);
     $q = new Question();
     $posts = Yii::$app->request->post();
     //查找answer操作
     $aid = Yii::$app->request->get('aid', 0);
     $aid = (int) $aid;
     $result = null;
     if (isset($posts['name']) && !empty($posts['name'])) {
         if (isset($posts['name'])) {
             $model->save();
             $model_Answer = new Answer();
             $model_Answer->table_id = $id;
             $model_Answer->value = $posts['name'];
             $model_Answer->save();
         } else {
             $posts['name'] = $model_Answer->value;
         }
         //             ZCommonFun::print_r_debug($posts['name']);
         //             ZCommonFun::print_r_debug($model_Answer);
         //             exit;
         $name = isset($posts['name']) ? $posts['name'] : '';
         $year = isset($posts['birth']['year']) ? $posts['birth']['year'] : 2015;
         $month = isset($posts['birth']['month']) ? $posts['birth']['month'] : '01';
         $day = isset($posts['birth']['day']) ? $posts['birth']['day'] : '01';
         $constellation = isset($posts['constellation']) ? intval($posts['constellation']) : 0;
         $constellation = $constellation > 0 && $constellation < 13 ? $constellation : 0;
         $birth = $year . '-' . $month . '-' . $day;
         $birth = date('Y-m-d', strtotime($birth));
         $model_SurveyResulte = new SurveyResulte();
         //计算测试结果
         $result = $model_SurveyResulte->getStep1Result($id, $name, $birth);
         // $model->answer_count = $model->randCount($model->answer_count);
         if ($result) {
             $model_AnswerUser = new AnswerUser();
             $model_AnswerUser->uid = ZCommonSessionFun::get_user_id();
             $model_AnswerUser->sid = $id;
             $model_AnswerUser->answer_name = $name;
             $model_AnswerUser->answer_age = $birth;
             $model_AnswerUser->constellation = $constellation;
             //直接跳转答案
             if ($result) {
                 //保存回答者结果,防止用户更改数据导致结果丢失
                 $mode_AnswerSurveyResulte = new AnswerSurveyResulte();
                 $mode_AnswerSurveyResulte->attributes = $result->attributes;
                 $mode_AnswerSurveyResulte->save();
                 $model_AnswerUser->table = 'answer_survey_resulte';
                 $model_AnswerUser->table_id = $mode_AnswerSurveyResulte->answer_sr_id;
             }
             $model_AnswerUser->ip = self::getUserIP();
             if ($model_AnswerUser->save()) {
                 //设置测试数量
                 $model->setAnswerCount($id);
                 $model_UserProfile = new UserProfile();
                 $model_UserProfile->setTestCount($model_AnswerUser->uid);
                 return $this->redirect(['resulte', 'au_id' => $model_AnswerUser->au_id]);
             }
         }
     }
     $model_Users = null;
     $model_UsersProfile = null;
     if ($model->uid) {
         $zhao_condition['uid'] = $model->uid;
         $model_Users = User::findOne($zhao_condition);
         $model_UsersProfile = UserProfile::findOne($zhao_condition);
     }
     !$model_Users ? $model_Users = new User() : '';
     !$model_UsersProfile ? $model_UsersProfile = new UserProfile() : '';
     $model_UsersProfile->uid = $model->uid;
     $model_SurveyOperation = new SurveyOperation();
     $models_SurveyOperation = $model_SurveyOperation->getIsTop();
     return $this->render('answer2', ['models_SurveyOperation' => $models_SurveyOperation, 'data' => $data, 'model' => $model, 'result' => $result, 'posts' => $posts, 'image' => Survey::getImageUrl($model), 'model_Users' => $model_Users, 'model_UsersProfile' => $model_UsersProfile, 'randSurvey' => $this->getRandSurvey()]);
     //         return $this->render('answer',[
     //             'data'=>$data,
     //             'model'=>$model,
     //             'result'=>$result,
     //             'posts'=>$posts,
     //             'image'=>Survey::getImageUrl($model),
     //             'model_Users'=>$model_Users,
     //             'model_UsersProfile'=>$model_UsersProfile,
     //         ]);
 }