ArticleController.php 2.1 KB

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