Article.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\shop\controller;
  11. use app\model\article\Article as ArticleModel;
  12. use app\model\article\ArticleCategory;
  13. use app\model\web\Config as ConfigModel;
  14. /**
  15. * 文章
  16. * @package app\shop\controller
  17. */
  18. class Article extends BaseShop
  19. {
  20. /**
  21. * 文章列表
  22. */
  23. public function lists()
  24. {
  25. if (request()->isAjax()) {
  26. $page = input('page', 1);
  27. $page_size = input('page_size', PAGE_LIST_ROWS);
  28. $search_text = input('search_text', '');
  29. $condition = [ [ 'pn.site_id', '=', $this->site_id ], [ 'status', '=', 1 ] ];
  30. $condition[] = [ 'pn.article_title', 'like', '%' . $search_text . '%' ];
  31. $order_by = 'pn.create_time desc';
  32. $article_model = new ArticleModel();
  33. return $article_model->getArticlePageList($condition, $page, $page_size, $order_by);
  34. } else {
  35. $this->forthMenu();
  36. $this->assign('pc_is_exit', addon_is_exit('pc'));
  37. return $this->fetch('article/lists');
  38. }
  39. }
  40. /**
  41. * 推广
  42. * @return array
  43. */
  44. public function promote()
  45. {
  46. if (request()->isAjax()) {
  47. $article_id = input('article_id', 0);
  48. $article_model = new ArticleModel();
  49. $article_info = $article_model->getArticleInfo([ [ 'article_id', '=', $article_id ] ], 'article_id')[ 'data' ];
  50. if (!empty($article_info)) {
  51. $res = $article_model->urlQrcode([ 'article_id' => $article_id ], $this->site_id);
  52. return $res;
  53. }
  54. }
  55. }
  56. /**
  57. * 草稿箱
  58. */
  59. public function drafts()
  60. {
  61. if (request()->isAjax()) {
  62. $page = input('page', 1);
  63. $page_size = input('page_size', PAGE_LIST_ROWS);
  64. $search_text = input('search_text', '');
  65. $condition = [ [ 'pn.site_id', '=', $this->site_id ], [ 'status', '=', 0 ] ];
  66. $condition[] = [ 'pn.article_title', 'like', '%' . $search_text . '%' ];
  67. $order_by = 'pn.create_time desc';
  68. $article_model = new ArticleModel();
  69. return $article_model->getArticlePageList($condition, $page, $page_size, $order_by);
  70. } else {
  71. $this->forthMenu();
  72. return $this->fetch('article/drafts');
  73. }
  74. }
  75. /**
  76. * 文章添加
  77. */
  78. public function add()
  79. {
  80. $article_model = new ArticleModel();
  81. if (request()->isAjax()) {
  82. $articles_data = [
  83. 'site_id' => $this->site_id,
  84. 'article_title' => input('article_title', ''),
  85. 'article_abstract' => input('article_abstract', ''),
  86. 'category_id' => input('category_id', ''),
  87. 'cover_img' => input('cover_img', ''),
  88. 'article_content' => input('article_content', ''),
  89. 'status' => input('status', ''),
  90. 'sort' => input('sort', '0'),
  91. 'is_show_release_time' => input('is_show_release_time', ''),
  92. 'is_show_read_num' => input('is_show_read_num', ''),
  93. 'is_show_dianzan_num' => input('is_show_dianzan_num', ''),
  94. 'initial_read_num' => input('initial_read_num', ''),
  95. 'initial_dianzan_num' => input('initial_dianzan_num', '')
  96. ];
  97. return $article_model->addArticle($articles_data);
  98. } else {
  99. $article_category_model = new ArticleCategory();
  100. $article_category_list = $article_category_model->getArticleCategoryList([ [ 'site_id', '=', $this->site_id ] ], 'category_id, category_name')[ 'data' ];
  101. $this->assign('category_list', $article_category_list);
  102. return $this->fetch('article/add');
  103. }
  104. }
  105. /**
  106. * 帮助编辑
  107. */
  108. public function edit()
  109. {
  110. $article_id = input('article_id', 0);
  111. $article_model = new ArticleModel();
  112. if (request()->isAjax()) {
  113. $articles_data = [
  114. 'article_id' => $article_id,
  115. 'site_id' => $this->site_id,
  116. 'article_title' => input('article_title', ''),
  117. 'article_abstract' => input('article_abstract', ''),
  118. 'category_id' => input('category_id', ''),
  119. 'cover_img' => input('cover_img', ''),
  120. 'article_content' => input('article_content', ''),
  121. 'status' => input('status', ''),
  122. 'sort' => input('sort', '0'),
  123. 'is_show_release_time' => input('is_show_release_time', ''),
  124. 'is_show_read_num' => input('is_show_read_num', ''),
  125. 'is_show_dianzan_num' => input('is_show_dianzan_num', ''),
  126. 'initial_read_num' => input('initial_read_num', ''),
  127. 'initial_dianzan_num' => input('initial_dianzan_num', '')
  128. ];
  129. return $article_model->editArticle($articles_data);
  130. } else {
  131. $this->assign('article_id', $article_id);
  132. $article_info = $article_model->getArticleInfo([ [ 'article_id', '=', $article_id ] ]);
  133. $this->assign('info', $article_info[ 'data' ]);
  134. $article_category_model = new ArticleCategory();
  135. $article_category_list = $article_category_model->getArticleCategoryList([ [ 'site_id', '=', $this->site_id ] ], 'category_id, category_name')[ 'data' ];
  136. $this->assign('category_list', $article_category_list);
  137. return $this->fetch('article/edit');
  138. }
  139. }
  140. /**
  141. * 文章删除
  142. */
  143. public function delete()
  144. {
  145. if (request()->isAjax()) {
  146. $article_id = input('article_id', 0);
  147. $article_model = new ArticleModel();
  148. return $article_model->deleteArticle([ [ 'article_id', '=', $article_id ] ]);
  149. }
  150. }
  151. /**
  152. * 修改排序
  153. */
  154. public function modifySort()
  155. {
  156. if (request()->isAjax()) {
  157. $sort = input('sort', 0);
  158. $article_id = input('article_id', 0);
  159. $article_model = new ArticleModel();
  160. return $article_model->modifyArticleSort($sort, $article_id, $this->site_id);
  161. }
  162. }
  163. //todo 移至草稿箱 或 草稿箱发布
  164. /**
  165. * 文章选择
  166. * @return array|mixed
  167. */
  168. public function articleSelect()
  169. {
  170. $article_model = new ArticleModel();
  171. if (request()->isAjax()) {
  172. $page = input('page', 1);
  173. $page_size = input('page_size', PAGE_LIST_ROWS);
  174. $search_text = input('search_text', '');
  175. $article_ids = input('article_ids', '');
  176. $condition = [
  177. [ 'pn.site_id', '=', $this->site_id ],
  178. [ 'pn.status', '=', 1 ]
  179. ];
  180. if (!empty($search_text)) {
  181. $condition[] = [ 'pn.article_title', 'like', '%' . $search_text . '%' ];
  182. }
  183. if (!empty($article_ids)) {
  184. $condition[] = [ 'pn.article_id', 'in', $article_ids ];
  185. }
  186. $list = $article_model->getArticlePageList($condition, $page, $page_size, 'pn.create_time desc', 'pn.article_id,pn.article_title,pn.article_abstract,pn.cover_img,pn.read_num,pn.create_time,png.category_name');
  187. return $list;
  188. } else {
  189. //已经选择的商品sku数据
  190. $select_id = input('select_id', '');
  191. $this->assign('select_id', $select_id);
  192. $article_list = $article_model->getArticleList([
  193. [ 'site_id', '=', $this->site_id ],
  194. [ 'article_id', 'in', $select_id ]
  195. ], 'article_id,article_title,article_abstract,cover_img,read_num')[ 'data' ];
  196. $this->assign('article_list', $article_list);
  197. return $this->fetch("article/article_select");
  198. }
  199. }
  200. }