ArticleController.php 3.3 KB

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