ExamController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\webApp;
  4. use App\Services\Api\ArticleService;
  5. use App\Services\Api\ExamService;
  6. /**
  7. * 考试管理
  8. * @package App\Http\Controllers\Api
  9. */
  10. class ExamController extends webApp
  11. {
  12. /**
  13. * 答题记录
  14. * @return array
  15. */
  16. public function index()
  17. {
  18. try {
  19. $params = request()->post();
  20. $pageSize = request()->post('pageSize', 10);
  21. $params['user_id'] = $this->userId;
  22. $datas = ExamService::make()->getDataList($params, $pageSize);
  23. return message(1010, true, $datas);
  24. } catch (\Exception $exception) {
  25. $error = ['error' => $exception->getMessage(), 'trace' => $exception->getTrace()];
  26. return message(1009, false, $error);
  27. }
  28. }
  29. /**
  30. * 答题历史
  31. * @return array
  32. */
  33. public function history()
  34. {
  35. try {
  36. $params = request()->post();
  37. $pageSize = request()->post('pageSize', 10);
  38. $params['user_id'] = $this->userId;
  39. $datas = ExamService::make()->getHistoryList($params, $pageSize);
  40. return message(1010, true, $datas);
  41. } catch (\Exception $exception) {
  42. $error = ['error' => $exception->getMessage(), 'trace' => $exception->getTrace()];
  43. return message(1009, false, $error);
  44. }
  45. }
  46. /**
  47. * 每日一练
  48. * @return array
  49. */
  50. public function practice()
  51. {
  52. try {
  53. $params = request()->post();
  54. $pageSize = request()->post('pageSize', 10);
  55. $datas = ExamService::make()->getPracticeList($this->userId, $params, $pageSize);
  56. return message(1010, true, $datas);
  57. } catch (\Exception $exception) {
  58. $error = ['error' => $exception->getMessage(), 'trace' => $exception->getTrace()];
  59. return message(1009, false, $error);
  60. }
  61. }
  62. /**
  63. * 答题
  64. * @return array
  65. */
  66. public function answer()
  67. {
  68. try {
  69. $params = request()->all();
  70. if(ExamService::make()->answer($this->userId, $params)){
  71. return showJson(1002, true);
  72. }else{
  73. return showJson(ExamService::make()->getError(), false);
  74. }
  75. } catch (\Exception $exception) {
  76. $error = ['error' => $exception->getMessage(), 'trace' => $exception->getTrace()];
  77. return message(1009, false, $error);
  78. }
  79. }
  80. /**
  81. * 交卷
  82. * @return array
  83. */
  84. public function submit()
  85. {
  86. try {
  87. $params = request()->all();
  88. if(ExamService::make()->submit($this->userId, $params)){
  89. return showJson(1002, true);
  90. }else{
  91. return showJson(ExamService::make()->getError(), false);
  92. }
  93. } catch (\Exception $exception) {
  94. $error = ['error' => $exception->getMessage(), 'trace' => $exception->getTrace()];
  95. return message(1009, false, $error);
  96. }
  97. }
  98. /**
  99. * 再次答题
  100. * @return array
  101. */
  102. public function reset()
  103. {
  104. try {
  105. $id = request()->post('id');
  106. if(ExamService::make()->reset($id)){
  107. return showJson(1002, true);
  108. }else{
  109. return showJson(ExamService::make()->getError(), false);
  110. }
  111. } catch (\Exception $exception) {
  112. $error = ['error' => $exception->getMessage(), 'trace' => $exception->getTrace()];
  113. return message(1009, false, $error);
  114. }
  115. }
  116. /**
  117. * 详情
  118. */
  119. public function info()
  120. {
  121. $params = request()->all();
  122. $id = isset($params['id']) ? intval($params['id']) : 0;
  123. if (empty($id)) {
  124. return message(1036, false);
  125. }
  126. if ($info = ArticleService::make()->getInfo($id)) {
  127. return message(1010, true, $info);
  128. } else {
  129. return message(1009, false);
  130. }
  131. }
  132. /**
  133. * 排行榜
  134. */
  135. public function ranks()
  136. {
  137. $params = request()->all();
  138. $type = isset($params['type']) ? intval($params['type']) : 0;
  139. if (empty($type)) {
  140. return message(1031, false);
  141. }
  142. $datas = ExamService::make()->getRankByType($type);
  143. return message(1010, true, $datas);
  144. }
  145. }