Officer.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace app\mobile\controller;
  3. use app\common\model\OfficerAnswerDetailModel;
  4. use app\common\model\OfficerAnswerModel;
  5. use app\common\model\OfficerReviewModel;
  6. use app\common\model\OfficerReviewSectionModel;
  7. use app\common\model\OfficerReviewTitleModel;
  8. use app\mobile\MobileBaseController;
  9. class Officer extends MobileBaseController
  10. {
  11. public function index()
  12. {
  13. $id = input('id');
  14. empty($id) && jump('该题库不存在或已删除');
  15. $review = OfficerReviewModel::find($id);
  16. empty($review) && jump('该题库不存在或已删除');
  17. return view('', [
  18. 'review' => $review,
  19. ]);
  20. }
  21. public function answer()
  22. {
  23. $id = input('id');
  24. empty($id) && jump('该题库不存在或已删除');
  25. $list = OfficerReviewSectionModel::with(['title_list'])->where('rid', $id)->order('sort', 'desc')->select()->toArray();
  26. empty($list) && jump('该题库不存在或已删除');
  27. return view('', [
  28. 'id' => $id,
  29. 'list' => json_encode($list),
  30. ]);
  31. }
  32. public function answerPost()
  33. {
  34. $id = input('id');
  35. $answer = input('answer');
  36. $answer_detail = input('answer_detail');
  37. $officer_answer = OfficerAnswerModel::create($answer);
  38. $review_title = OfficerReviewTitleModel::where('rid', $id)->column('option,title', 'no');
  39. $score_sum = 0;
  40. foreach ($answer_detail as $k => $v) {
  41. $options = json_decode($review_title[$k]['option'], true);
  42. $option = $options[$v];
  43. OfficerAnswerDetailModel::create([
  44. 'aid' => $officer_answer['id'],
  45. 'no' => $k,
  46. 'title' => $review_title[$k]['title'],
  47. 'score' => $option['score'],
  48. 'option_title' => $option['title'],
  49. ]);
  50. $score_sum += $option['score'];
  51. }
  52. OfficerAnswerModel::update(['score' => $score_sum], ['id' => $officer_answer['id']]);
  53. ajax_return();
  54. }
  55. public function finish()
  56. {
  57. return view();
  58. }
  59. }