Problem.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Models\Answer;
  4. use App\Models\ProblemRecommend;
  5. use App\Models\UsefulCount;
  6. use App\Services\ProblemService;
  7. use App\Services\ToolsServices;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Cache;
  10. use Illuminate\Support\Facades\DB;
  11. class Problem
  12. {
  13. public function getProblemList(Request $request)
  14. {
  15. $limit = $request->input('limit', 10);
  16. $page = $request->input('page', 1);
  17. $list = \App\Models\Problem::getList($page,$limit);
  18. $data = ProblemService::problems($list);
  19. return ToolsServices::returnAdmin(0,$data);
  20. }
  21. public function getProblemRecommend(Request $request)
  22. {
  23. $limit = $request->input('limit', 10);
  24. $page = $request->input('page', 1);
  25. $data = ProblemService::getProblemRecommendList($limit,$page);
  26. return ToolsServices::returnAdmin(0,$data);
  27. }
  28. public function recommend(Request $request)
  29. {
  30. $id = Cache::get($request->header('token'));
  31. $problem_id = $request->input('problem_id');
  32. $at_user_id = $request->input('at_user_id','');
  33. $text = $request->input('text');
  34. $input = [
  35. 'problem_id' => $problem_id,
  36. 'text' => $text,
  37. 'user_id' => $id,
  38. ];
  39. if (!empty($input)) {
  40. $input['at_user_id'] = $at_user_id;
  41. }
  42. DB::transaction(function () use ($input,$problem_id) {
  43. ProblemRecommend::insertData($input);
  44. \App\Models\Problem::countIncrement($problem_id,'recommend_count');
  45. });
  46. return ToolsServices::returnAdmin(0,[]);
  47. }
  48. public function useful(Request $request)
  49. {
  50. $id = Cache::get($request->header('token'));
  51. $problem_id = $request->input('problem_id');
  52. DB::transaction(function () use ($problem_id,$id) {
  53. if (!UsefulCount::getInfo($problem_id)){
  54. UsefulCount::insertData(['problem_id' => $problem_id,'user_id'=>$id]);
  55. }
  56. \App\Models\Problem::countIncrement($problem_id,'useful_count');
  57. });
  58. return ToolsServices::returnAdmin(0,[]);
  59. }
  60. public function questioning(Request $request)
  61. {
  62. $id = Cache::get($request->header('token'));
  63. $title = $request->input('title');
  64. if (empty($title)) {
  65. return ToolsServices::error('请填写问题');
  66. }
  67. $label = $request->input('label',[]);
  68. $input = [
  69. 'user_id' => $id,
  70. 'title' => $title,
  71. ];
  72. if (!empty($label)) {
  73. $input['label'] = json_encode($label);
  74. }
  75. \App\Models\Problem::insertData($input);
  76. return ToolsServices::returnAdmin(0,[]);
  77. }
  78. public function reply(Request $request)
  79. {
  80. $id = Cache::get($request->header('token'));
  81. $problem_id = $request->input('problem_id');
  82. if (empty($problem_id)) {
  83. return ToolsServices::error('请选择问题');
  84. }
  85. $answer = $request->input('answer');
  86. if (empty($answer)) {
  87. return ToolsServices::error('回答不能空');
  88. }
  89. $input = [
  90. 'user_id' => $id,
  91. 'problem_id' => $problem_id,
  92. 'answer' => $answer,
  93. ];
  94. Answer::insertData($input);
  95. return ToolsServices::returnAdmin(0,[]);
  96. }
  97. }