Article.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\AdminBaseController;
  4. use app\common\model\ArticleModel;
  5. use app\common\model\ArticleCateModel;
  6. use app\common\validate\ArticleCateValidate;
  7. use app\common\validate\ArticleValidate;
  8. use think\exception\ValidateException;
  9. class Article extends AdminBaseController
  10. {
  11. /**
  12. * 列表
  13. */
  14. public function index()
  15. {
  16. $cate_list = ArticleCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  17. return view('', [
  18. 'cate_list' => $cate_list,
  19. 'type_list' => ArticleModel::TYPE,
  20. 'status_list' => ArticleModel::STATUS,
  21. ]);
  22. }
  23. public function articleForm()
  24. {
  25. $cate_list = ArticleCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  26. $id = input('id/d, 0');
  27. $info = ArticleModel::find($id);
  28. return view('', [
  29. 'cate_list' => $cate_list,
  30. 'info' => $info,
  31. 'type_list' => ArticleModel::TYPE,
  32. 'status_list' => ArticleModel::STATUS,
  33. ]);
  34. }
  35. public function listArticle()
  36. {
  37. $map = $this->dealEqualInput($this->dealLikeInput([], ['title']), ['cate_id', 'type', 'status']);
  38. $list = ArticleModel::with('cate')
  39. ->where($map)
  40. ->order(['priority' => 'desc', 'id' => 'desc'])
  41. ->limit(input('limit'))
  42. ->page(input('page'))
  43. ->append(['type_text', 'status_text'])
  44. ->select();
  45. $count = ArticleModel::where($map)->count();
  46. if ($count == 0) {
  47. ajax_return(1, '未查询到数据');
  48. }
  49. list_return($list, $count);
  50. }
  51. public function delArticle()
  52. {
  53. $id_arr = input('id_arr/a');
  54. ArticleModel::destroy($id_arr);
  55. ajax_return();
  56. }
  57. public function editArticle()
  58. {
  59. $data = input('post.');
  60. try {
  61. validate(ArticleValidate::class)->check($data);
  62. } catch (ValidateException $e) {
  63. ajax_return(1, $e->getError());
  64. }
  65. if ($data['type'] == 1 && empty($data['content'])) {
  66. ajax_return(1, '详情不能为空');
  67. }
  68. if ($data['type'] == 2 && empty($data['url'])) {
  69. ajax_return(1, '链接不能为空');
  70. }
  71. if (empty($data['id'])) {
  72. ArticleModel::create($data, ArticleModel::EDIT_ALLOW);
  73. } else {
  74. ArticleModel::update($data, ['id' => $data['id']], ArticleModel::EDIT_ALLOW);
  75. }
  76. ajax_return();
  77. }
  78. public function fieldArticle()
  79. {
  80. $id = input('id/d', 0);
  81. $article = ArticleModel::find($id);
  82. if (empty($article)) {
  83. ajax_return(1, '信息不存在');
  84. } else {
  85. $article->save([
  86. input('field/s') => input('value/s', ""),
  87. ]);
  88. }
  89. ajax_return();
  90. }
  91. /**
  92. * 分类
  93. */
  94. public function cate()
  95. {
  96. return view();
  97. }
  98. public function cateForm()
  99. {
  100. $id = input('id/d, 0');
  101. $info = ArticleCateModel::find($id);
  102. return view('', [
  103. 'info' => $info,
  104. ]);
  105. }
  106. public function listCate()
  107. {
  108. $list = ArticleCateModel::order(['priority' => 'desc', 'id' => 'desc'])
  109. ->limit(input('limit'))
  110. ->page(input('page'))
  111. ->append(['status_text'])
  112. ->select();
  113. $count = ArticleCateModel::count();
  114. if ($count == 0) {
  115. ajax_return(1, '未查询到数据');
  116. }
  117. list_return($list, $count);
  118. }
  119. public function fieldCate()
  120. {
  121. $id = input('id/d');
  122. $cate = ArticleCateModel::find($id);
  123. if (empty($cate)) {
  124. ajax_return(1, '分类信息不存在');
  125. } else {
  126. $cate->save([
  127. input('field/s') => input('value/s', ""),
  128. ]);
  129. }
  130. ajax_return();
  131. }
  132. public function editCate()
  133. {
  134. $data = input('post.');
  135. try {
  136. validate(ArticleCateValidate::class)->check($data);
  137. } catch (ValidateException $e) {
  138. ajax_return(1, $e->getError());
  139. }
  140. if (empty($data['id'])) {
  141. ArticleCateModel::create($data, ArticleCateModel::EDIT_ALLOW);
  142. } else {
  143. ArticleCateModel::update($data, ['id' => $data['id']], ArticleCateModel::EDIT_ALLOW);
  144. }
  145. ajax_return();
  146. }
  147. public function delCate()
  148. {
  149. $id = input('id/d');
  150. $check = ArticleModel::where('cate_id',$id)->find();
  151. if (!empty($check)) {
  152. ajax_return(1,'该分类下还有文章,无法删除');
  153. }
  154. ArticleCateModel::destroy($id);
  155. ajax_return();
  156. }
  157. }