ArticleController.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\BaseController;
  4. use App\Http\Validator\ArticleValidator;
  5. use App\Services\ArticleBooksService;
  6. use App\Services\ArticleCatesService;
  7. use App\Services\ArticleService;
  8. use App\Services\ConfigService;
  9. use Illuminate\Http\Request;
  10. /**
  11. * 文章头条控制器类
  12. * @author wesmiler
  13. * @since 2020/11/10
  14. * Class ArticleController
  15. * @package App\Http\Controllers
  16. */
  17. class ArticleController extends BaseController
  18. {
  19. /**
  20. * 构造函数
  21. * @author wesmiler
  22. * @since 2020/11/11
  23. * ArticleController constructor.
  24. */
  25. public function __construct()
  26. {
  27. parent::__construct();
  28. $this->service = new ArticleService();
  29. $this->cateService = new ArticleCatesService();
  30. $this->bookService = new ArticleBooksService();
  31. }
  32. /**
  33. * 列表
  34. * @return array
  35. */
  36. public function index(){
  37. $params = request()->all();
  38. return $this->service->getDataList($params);
  39. }
  40. /**
  41. * 详情
  42. * @return array|mixed
  43. */
  44. public function info(){
  45. $id = request()->get('id',0);
  46. if($id<=0){
  47. return message(1006, false);
  48. }
  49. $this->service->updateVisit($this->userId);
  50. $info = $this->service->getDetail($id, $this->userId);
  51. return message(1005, true, $info);
  52. }
  53. /**
  54. * 报名
  55. * @param Request $request
  56. * @param ArticleValidator $validate
  57. * @return array
  58. */
  59. public function books(Request $request, ArticleValidator $validate){
  60. $params = $validate->check($request->all(),'books');
  61. if(!is_array($params)){
  62. return message($params, false);
  63. }
  64. $params['user_id'] = $this->userId;
  65. return $this->bookService->books($params);
  66. }
  67. /**
  68. * 获取文章分类
  69. * @return mixed
  70. */
  71. public function cates(){
  72. return $this->cateService->getOptions();
  73. }
  74. /**
  75. * 单页文章内容
  76. * @return array
  77. */
  78. public function page(){
  79. $code = request()->get('code', '');
  80. if(empty($code)){
  81. return message('参数错误', false);
  82. }
  83. $pageId = ConfigService::make()->getConfigByCode($code);
  84. if($pageId<=0){
  85. return message(1006, false);
  86. }
  87. $info = ArticleService::make()->getDetail($pageId);
  88. if($info){
  89. return message(1005, true, $info);
  90. }else{
  91. return message(1006, false);
  92. }
  93. }
  94. }