...
|
...
|
@@ -34,7 +34,10 @@ class Questionnaire extends Api |
|
|
"list": [{ //题目列表
|
|
|
"id": 1, //题目ID
|
|
|
"title": "测定混凝土立方体抗压强度时,标准试件的尺寸是( )㎜。", //题目
|
|
|
"option": "[{\"name\":\"A\",\"gender\":\"100\\u00d7100\\u00d7100\"},{\"name\":\"B\",\"gender\":\"150\\u00d7150\\u00d7150\"},{\"name\":\"C\",\"gender\":\"200\\u00d7200\\u00d7200\"},{\"name\":\"D\",\"gender\":\"70.7\\u00d770.7\\u00d770.7\"}]", //题目选项
|
|
|
"option": [{ //题目选项
|
|
|
"key": "A", //选项
|
|
|
"value": "1" //选项内容
|
|
|
}],
|
|
|
"type": "1", //题目类型:1=单选题,2=多选题,3=判断题,4=简答题
|
|
|
}]
|
|
|
}
|
...
|
...
|
@@ -43,6 +46,9 @@ class Questionnaire extends Api |
|
|
public function questionList()
|
|
|
{
|
|
|
$list = QuestionnaireQuestion::field('id,title,option,type')->select();
|
|
|
foreach ($list as $v){
|
|
|
$v->option = json_decode($v['option'],true);
|
|
|
}
|
|
|
$this->success('成功',compact('list'));
|
|
|
}
|
|
|
|
...
|
...
|
@@ -53,7 +59,7 @@ class Questionnaire extends Api |
|
|
*
|
|
|
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
|
|
|
*
|
|
|
* @ApiParams (name="content", type="string", required=true, description="{问题ID:回答内容}")
|
|
|
* @ApiParams (name="content", type="string", required=true, description="[{id: 问题ID,value: 回答选项或内容}]")
|
|
|
*
|
|
|
* @ApiReturn({
|
|
|
"code": 1,
|
...
|
...
|
@@ -66,9 +72,15 @@ class Questionnaire extends Api |
|
|
{
|
|
|
$content = $this->request->post('content');
|
|
|
empty($content) && $this->error('缺少必要参数');
|
|
|
$answer_list = array_filter(json_decode(htmlspecialchars_decode($content),true));
|
|
|
$no_answer = QuestionnaireQuestion::where('id','not in', array_keys($answer_list))->find();
|
|
|
!empty($no_answer) && $this->error('还有问题没有回答');
|
|
|
if(is_string($content)){
|
|
|
$content = htmlspecialchars_decode($content);
|
|
|
}
|
|
|
$answer_list = json_decode($content,true);
|
|
|
$no_answer = QuestionnaireQuestion::where('id','not in', array_column($answer_list,'id'))->field('id')->find();
|
|
|
!empty($no_answer) && $this->error('请回答第'.$no_answer['id'].'题');
|
|
|
foreach ($answer_list as $v){
|
|
|
empty($v['value']) && $this->error('请回答第'.$v['id'].'题');
|
|
|
}
|
|
|
Db::startTrans();
|
|
|
try{
|
|
|
$result_id = db('mobile_questionnaire_result')->insertGetId([
|
...
|
...
|
@@ -77,12 +89,12 @@ class Questionnaire extends Api |
|
|
'updatetime' => time()
|
|
|
]);
|
|
|
$insertAll = [];
|
|
|
foreach($answer_list as $id => $answer){
|
|
|
foreach($answer_list as $val){
|
|
|
$insertAll[] = [
|
|
|
'user_id' => $this->auth->id,
|
|
|
'result_id' => $result_id,
|
|
|
'question_id' => $id,
|
|
|
'content' => $answer,
|
|
|
'question_id' => $val['id'],
|
|
|
'content' => $val['value'],
|
|
|
];
|
|
|
}
|
|
|
(new QuestionnaireAnswer)->saveAll($insertAll);
|
...
|
...
|
|