HelpController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Wen\Utils\FieldUtils;
  4. use App\Wen\Utils\Utils;
  5. use App\Models\WxQuestion;
  6. use Illuminate\Http\Request;
  7. class HelpController extends BaseController
  8. {
  9. public function detail(Request $request){
  10. $help_id = $request->id;
  11. if(_empty_($help_id)){
  12. return $this->fail(200001);
  13. }
  14. $help = WxQuestion::find($help_id);
  15. if($help){
  16. return $this->success($help);
  17. }else{
  18. return $this->fail(200003);
  19. }
  20. }
  21. /*
  22. * 获取热门问题列表
  23. */
  24. public function questions(Request $request){
  25. $types = $request->types;
  26. if(!is_array($types)){
  27. $types = json_decode($types, true);
  28. }
  29. if(_empty_($types)){
  30. return $this->fail(200001, [], 'types参数为空');
  31. }
  32. $questions = WxQuestion::whereIn('type', $types)->orderBy('updated_at', 'desc')->limit(200)->get();
  33. if(_empty_($questions)){
  34. return $this->fail(200003);
  35. }
  36. $res = [];
  37. $nameMap = FieldUtils::getQuestionTypes();
  38. foreach ($types as $type){
  39. $res[$type] = ['name'=>$nameMap[$type], 'list'=>[]];
  40. }
  41. $questions = $questions->map(function ($v) use (&$res, $nameMap){
  42. if(count($res[$v->type]) <= 5){
  43. $v->typeName = $nameMap[$v->type];
  44. $res[$v->type]['list'][] = $v;
  45. }
  46. return $res;
  47. });
  48. if(_empty_($res)){
  49. return $this->fail(200003);
  50. }
  51. return $this->success(array_values($res));
  52. }
  53. }