ArticleController.php 3.5 KB

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