ExamQuestion.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php namespace App\Http\Controllers\Api\Video;
  2. use App\Http\Controllers\Api\Api;
  3. use App\Models\Video\Answer as VideoAnswer;
  4. use App\Models\Video\Question as VideoQuestion;
  5. use App\Models\Video\ExamQuestion as Model;
  6. use App\Models\Video\ExamRecord;
  7. /**
  8. * 课程
  9. *
  10. * @author 刘相欣
  11. *
  12. */
  13. class ExamQuestion extends Api{
  14. /**
  15. * 获取课后习题列表 /api/video_exam_question/get_list
  16. *
  17. */
  18. public function get_list(Model $Model,VideoQuestion $VideoQuestion,VideoAnswer $VideoAnswer,ExamRecord $ExamRecord){
  19. // 用户登录
  20. $uid = $this->checkLogin();
  21. // 接收参数
  22. $data['course_id'] = request('course_id',0);
  23. $data['custom_uid'] = $uid;
  24. $data['start_time'] = time();
  25. // 查询是不是有记录在使用中
  26. $oldRecordId = $ExamRecord->query()->where([['custom_uid','=',$uid],['course_id','=',$data['course_id']],['status','=',0]])->value('id');
  27. // 查询课程数据
  28. $questionList = $Model->getList($data['course_id']);
  29. // 获取数据
  30. foreach ($questionList as $key => $value) {
  31. # 获取习题数据
  32. $value['question_title']= (string) $VideoQuestion->getOne($value['question_id'],'title');
  33. $value['answer_list'] = $VideoAnswer->getListByQuestion($value['question_id']);
  34. $value['answer_list'] = array_values($value['answer_list']);
  35. // 如果没有题目选项,删除
  36. if( !$value['answer_list'] ){
  37. // 如果没有题目选项,删除
  38. unset($questionList[$key]);
  39. continue;
  40. }
  41. // 重组
  42. $questionList[$key] = $value;
  43. }
  44. // 题目数量
  45. $data['question_total'] = count($questionList);
  46. // 新增/修改记录
  47. $data['record_id'] = $oldRecordId ? $ExamRecord->edit($oldRecordId,$data) : $ExamRecord->add($data);
  48. // 如果记录失败
  49. if( !$data['record_id'] ) return json_send(['code'=>'error','msg'=>'获取详情失败,请重试']);
  50. // 习题列表
  51. $data['question_list'] = array_values($questionList);
  52. // 返回结果
  53. return json_send(['code'=>'success','msg'=>'获取成功','data'=>$data]);
  54. }
  55. }