Exemplo n.º 1
0
 /**
  * 分数型测试结果保存
  * @param unknown $post
  * @param unknown $condition
  * @param unknown $id
  */
 public function step4_2SaveResulteCondition2($post, $condition, $id)
 {
     $post_data = [];
     $url = $error = '';
     if (isset($post['name'][0])) {
         foreach ($post['name'] as $key => $name) {
             $value = isset($post['value'][$key]) ? $post['value'][$key] : '';
             $intro = isset($post['intro'][$key]) ? $post['intro'][$key] : '';
             $min = isset($post['score-min'][$key]) ? $post['score-min'][$key] : 1;
             $max = isset($post['score-max'][$key]) ? $post['score-max'][$key] : 1;
             $temp = $min > $max ? $min : $max;
             if ($min > $max) {
                 $temp = $min;
                 $min = $max;
                 $max = $temp;
             }
             if ($max > 0 && $min > 0 && !empty($value) && isset($name[0])) {
                 $post_data[$key]['name'] = $value;
                 $post_data[$key]['value'] = $value;
                 $post_data[$key]['intro'] = $intro;
                 $post_data[$key]['sr-id'] = isset($post['sr-id'][$key]) ? $post['sr-id'][$key] : null;
                 $post_data[$key]['min'] = $min;
                 $post_data[$key]['max'] = $max;
             }
         }
         //             ZCommonFun::print_r_debug($post_data);
         //             ZCommonFun::print_r_debug($post);
         //             exit();
         //有结果
         if ($post_data) {
             //保存结果
             $transaction = Yii::$app->db->beginTransaction();
             //删除结果
             $deleteSurveyResulte = new SurveyResulte();
             $deleteAll = $deleteSurveyResulte->getAll($id);
             isset($deleteAll[0]) ? null : ($deleteAll = []);
             $sr_ids = ZCommonFun::listData($deleteAll, 'sr_id', 'sr_id');
             $save = 0;
             try {
                 foreach ($post_data as $key => $row) {
                     if (isset($row['sr-id']) && $row['sr-id'] > 0) {
                         $row_SurveyResulte = SurveyResulte::findOne($row['sr-id']);
                         if ($row_SurveyResulte) {
                             //结果存在,就不删除
                             unset($sr_ids[$row['sr-id']]);
                             if ($row_SurveyResulte->s_id != $id) {
                                 continue;
                             }
                             $save++;
                         } else {
                             $row_SurveyResulte = new SurveyResulte();
                         }
                     } else {
                         $row_SurveyResulte = new SurveyResulte();
                     }
                     $row_SurveyResulte->score_max = $row['max'];
                     $row_SurveyResulte->score_min = $row['min'];
                     $row_SurveyResulte->name = $row['name'];
                     $row_SurveyResulte->value = $row['value'];
                     $row_SurveyResulte->intro = $row['intro'];
                     $row_SurveyResulte->value = $row['value'];
                     $row_SurveyResulte->value = $row['value'];
                     $row_SurveyResulte->uid = ZCommonSessionFun::get_user_id();
                     $row_SurveyResulte->s_id = $id;
                     $row_SurveyResulte->save() ? $save++ : null;
                 }
                 if ($save > 0) {
                     $condition = null;
                     if (count($sr_ids) > 0) {
                         $condition['sr_id'] = $sr_ids;
                         $condition['s_id'] = $id;
                         //删除所有结果
                         SurveyResulte::deleteAll($condition);
                     }
                     $transaction->commit();
                     $url = ['my'];
                 }
                 //                     ZCommonFun::print_r_debug($sr_ids);
                 //                     ZCommonFun::print_r_debug($post_data);
                 //                     exit;
                 $url = ['my'];
             } catch (\Exception $e) {
                 //                     ZCommonFun::print_r_debug($e);
                 $transaction->rollBack();
             }
         }
     }
     return $url;
 }