FexamController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Clocked;
  4. use App\Exam;
  5. use App\Examarg;
  6. use App\Question;
  7. use App\Score;
  8. use App\Test;
  9. use App\User;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\App;
  12. use Illuminate\Support\Facades\Auth;
  13. use Illuminate\Support\Facades\DB;
  14. class FexamController extends Controller
  15. {
  16. //
  17. public function getExamList()
  18. {
  19. }
  20. public function examStart($examId)
  21. {
  22. $exam = Examarg::where('id', $examId)->first();
  23. $is_switch = Test::where('paper_id', $exam->id)->where('uid', Auth::guard('wechat')->user()->id)->count();
  24. return view('xt.examStart', compact('exam', 'is_switch'));
  25. }
  26. public function exam($exam_args_id)
  27. {
  28. $paper = Examarg::where('id', $exam_args_id)->first();
  29. $is_switch = Test::where('paper_id', $paper->id)->where('uid', Auth::guard('wechat')->user()->id)->count();
  30. if ($is_switch) {
  31. return redirect('/examList');
  32. }
  33. $questions = Question::whereIn('id', $paper->exam->question)->get();
  34. return view('xt.test', compact('paper', 'questions'));
  35. }
  36. public function examList()
  37. {
  38. Auth::guard('wechat')->loginUsingId(1);
  39. $userinfo = Auth::guard('wechat')->user();
  40. $user_id = $userinfo['id'];
  41. $sclass_id = $userinfo['class_id'];
  42. $school_id = $userinfo['school_id'];
  43. $grade_id = $userinfo['grade_id'];
  44. $cdata = date('Y-m-d H:i:s');
  45. $examargs = Examarg::where('grade_id', $grade_id)
  46. ->where('school_id', $school_id)
  47. ->where('exam_start', '<', $cdata)
  48. ->where('exam_end', '>', $cdata)->get();
  49. //取出班级数据
  50. $arrdatas = [];
  51. foreach ($examargs as $exa => $val) {
  52. if (in_array($sclass_id, $val['sclass_id'])) {
  53. $score = Score::where('user_id', $user_id)
  54. ->where("exam_id", $val['exam_id'])
  55. ->where('examarg_id', $val['id'])->select('finish')->first();
  56. if ($score) {
  57. $val['finish'] = $score['finish'];
  58. }
  59. $arrdatas[] = $val;
  60. }
  61. }
  62. return view("xt.examList", compact('arrdatas'));
  63. }
  64. public function examHistory()
  65. {
  66. $user_id = Auth::guard('wechat')->user()->id;
  67. $tests = Test::where('uid', $user_id)->get();
  68. return view('xt.examHistory', compact('tests'));
  69. }
  70. public function examHistoryContent($score_id)
  71. {
  72. $test = Test::where('id', $score_id)->first();
  73. return view('xt.test_show', compact('test'));
  74. }
  75. public function card()
  76. {
  77. $user_id = Auth::guard('wechat')->user()->id;
  78. $card = Clocked::where('user_id', $user_id)->where('finish', 1)->whereDate('created_at', date('Y-m-d'))->first();
  79. $is_switch = $card ? true : false;
  80. if ($card) {
  81. $question = Question::where('id', $card->question_id)->first();
  82. $user = User::where('id', $card->user_id)->first();
  83. $t_count = Clocked::where('user_id', $card->user_id)->count();
  84. return view('xt.card_share', compact('user', 'question', 'card', 't_count'));
  85. } else {
  86. $question = Question::where('category', Question::CATEGORY_CARD)->inRandomOrder()->first();
  87. }
  88. $config = [];
  89. return view('xt.card', compact('is_switch', 'card', 'config', 'question', 'user_id'));
  90. }
  91. public function cardShare(Request $request)
  92. {
  93. $c_id = $request->get('cid', '');
  94. $card = Clocked::where('id', $c_id)->first();
  95. $user = User::where('id', $card->user_id)->first();
  96. $question = Question::where('id', $card->question_id)->first();
  97. $t_count = Clocked::where('user_id', $card->user_id)->count();
  98. return view('xt.card_share', compact('user', 'question', 'card', 't_count'));
  99. }
  100. public function cardList()
  101. {
  102. $user_id = Auth::guard('wechat')->user()->id;
  103. $clocked = Clocked::where('finish', 1)
  104. ->where('user_id', $user_id)
  105. ->select(DB::raw("date_format(created_at,'%Y-%m-%d') as date"), 'answer', 'id')
  106. ->get();
  107. return view('xt.cardList', compact('clocked'));
  108. }
  109. }