where(['status'=>1])->whereNull('deletetime')->order('weigh desc')->select(); $this->success(1, $list); } //题目列表 public function question_list(){ $paper_id = input('paper_id'); $list = Db::name('service_question')->where('paper_id',$paper_id)->where(['status'=>1])->whereNull('deletetime')->order('weigh desc, id desc')->select(); foreach($list as $k=>$v){ $options = json_decode($v['options_json'],true); foreach ($options as $key=>$value){ $op = [ 'key' => $key, 'value' => $value ]; $list[$k]['options'][] = $op; } unset($list[$k]['options_json']); } $this->success(1, $list); } //提交 public function submit(){ $paper_id = input('paper_id'); $answer_json = input('answer','','trim'); $list = Db::name('service_question')->where('paper_id',$paper_id)->where(['status'=>1])->whereNull('deletetime')->order('weigh desc, id desc')->select(); $question_ids = array_column($list, 'id'); $answer = json_decode($answer_json,true); if(count($list) != count($answer)){ $this->error(); } if(array_column($answer,'id') != $question_ids){ $this->error(); } $data = [ 'user_id' => $this->auth->id, 'paper_id' => $paper_id, 'question_ids' => implode(',',$question_ids), 'user_answers' => $answer_json, 'createtime' => time(), 'updatetime' => time(), ]; $grade_id = Db::name('service_grade')->insert($data); $this->success('提交成功',$grade_id); } }