Article.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace app\api\controller;
  3. use app\model\article\Article as ArticleModel;
  4. use app\model\article\ArticleCategory as ArticleCategoryModel;
  5. /**
  6. * 文章接口
  7. * Class Goodsbrand
  8. * @package app\api\controller
  9. */
  10. class Article extends BaseApi
  11. {
  12. public function info()
  13. {
  14. $article_id = isset($this->params[ 'article_id' ]) ? $this->params[ 'article_id' ] : 0;
  15. if (empty($article_id)) {
  16. return $this->response($this->error('', '缺少参数article_id'));
  17. }
  18. $article_model = new ArticleModel();
  19. $condition = [
  20. [ 'site_id', '=', $this->site_id ],
  21. [ 'article_id', '=', $article_id ],
  22. [ 'status', '=', 1 ]
  23. ];
  24. $field = 'article_id, article_title, article_abstract, category_id, cover_img, article_content, is_show_release_time, is_show_read_num, is_show_dianzan_num, read_num, dianzan_num, create_time, initial_read_num, initial_dianzan_num';
  25. $res = $article_model->getArticleDetailInfo($condition, $field, 2);
  26. if (empty($res[ 'data' ])) {
  27. return $this->response($this->error('', '文章不存在'));
  28. }
  29. return $this->response($res);
  30. }
  31. public function page()
  32. {
  33. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  34. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  35. $article_id_arr = isset($this->params[ 'article_id_arr' ]) ? $this->params[ 'article_id_arr' ] : '';
  36. $category_id = isset($this->params[ 'category_id' ]) ? $this->params[ 'category_id' ] : '';
  37. $condition = [
  38. [ 'pn.site_id', '=', $this->site_id ],
  39. [ 'pn.status', '=', 1 ],
  40. ];
  41. if (!empty($article_id_arr)) {
  42. $condition[] = [ 'pn.article_id', 'in', $article_id_arr ];
  43. }
  44. if (!empty($category_id)) {
  45. $condition[] = [ 'pn.category_id', '=', $category_id ];
  46. }
  47. $order_by = 'pn.sort desc,pn.create_time desc';
  48. $article_model = new ArticleModel();
  49. $list = $article_model->getArticlePageList($condition, $page, $page_size, $order_by);
  50. return $this->response($list);
  51. }
  52. public function lists()
  53. {
  54. $num = isset($this->params[ 'num' ]) ? $this->params[ 'num' ] : 0;
  55. $article_id_arr = isset($this->params[ 'article_id_arr' ]) ? $this->params[ 'article_id_arr' ] : '';
  56. $condition = [
  57. [ 'pn.site_id', '=', $this->site_id ],
  58. [ 'pn.status', '=', 1 ],
  59. ];
  60. if (!empty($article_id_arr)) {
  61. $condition[] = [ 'article_id', 'in', $article_id_arr ];
  62. }
  63. $order_by = 'pn.sort desc,pn.create_time desc';
  64. $alias = 'pn';
  65. $join = [
  66. [
  67. 'article_category png',
  68. 'png.category_id = pn.category_id',
  69. 'left'
  70. ]
  71. ];
  72. $field = 'pn.*,png.category_name';
  73. $article_model = new ArticleModel();
  74. $list = $article_model->getArticleList($condition, $field, $order_by, $num, $alias, $join);
  75. return $this->response($list);
  76. }
  77. /**
  78. * 获取文章分类
  79. * @return false|string
  80. */
  81. public function category()
  82. {
  83. $article_category_model = new ArticleCategoryModel();
  84. $res = $article_category_model->getArticleCategoryList([ [ 'site_id', '=', $this->site_id ] ], 'category_id,category_name,article_num', 'sort desc');
  85. return $this->response($res);
  86. }
  87. }