ArticleController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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
  43. */
  44. public function relaction(){
  45. $params = request()->all();
  46. return $this->service->getRelactionList($params);
  47. }
  48. /**
  49. * 详情
  50. * @return array|mixed
  51. */
  52. public function info(){
  53. $id = request()->get('id',0);
  54. if($id<=0){
  55. return message(1006, false);
  56. }
  57. $this->service->updateVisit($this->userId);
  58. $info = $this->service->getDetail($id, $this->userId);
  59. return message(1005, true, $info);
  60. }
  61. /**
  62. * 报名
  63. * @param Request $request
  64. * @param ArticleValidator $validate
  65. * @return array
  66. */
  67. public function books(Request $request, ArticleValidator $validator){
  68. $params = $validator->check($request->all(),'books');
  69. if(!is_array($params)){
  70. return message($params, false);
  71. }
  72. $params['user_id'] = $this->userId;
  73. return $this->bookService->books($params);
  74. }
  75. /**
  76. * 发布
  77. * @param Request $request
  78. * @param ArticleValidator $validate
  79. * @return array
  80. */
  81. public function send(Request $request, ArticleValidator $validator){
  82. $params = $validator->check($request->all(),'send');
  83. if(!is_array($params)){
  84. return message($params, false);
  85. }
  86. $params['user_id'] = $this->userId;
  87. return $this->service->send($params);
  88. }
  89. /**
  90. * 获取文章分类
  91. * @return mixed
  92. */
  93. public function cates(){
  94. return $this->cateService->getOptions();
  95. }
  96. /**
  97. * 单页文章内容
  98. * @return array
  99. */
  100. public function page(){
  101. $code = request()->get('code', '');
  102. if(empty($code)){
  103. return message('参数错误', false);
  104. }
  105. $pageId = ConfigService::make()->getConfigByCode($code);
  106. if($pageId<=0){
  107. return message(1006, false);
  108. }
  109. $info = ArticleService::make()->getDetail($pageId);
  110. if($info){
  111. return message(1005, true, $info);
  112. }else{
  113. return message(1006, false);
  114. }
  115. }
  116. }