News.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\system\controller\v1;
  4. use app\BaseController;
  5. use app\model\system\NewsCate as NewsCateModel;
  6. use app\model\system\News as NewsModel;
  7. use app\Request;
  8. use library\services\UtilService;
  9. // +----------------------------------------------------------------------
  10. // | [ WE CAN DO IT MORE SIMPLE ]
  11. // +----------------------------------------------------------------------
  12. // | Copyright (c) 2018-2020 rights reserved.
  13. // +----------------------------------------------------------------------
  14. // | Author: TABLE ME
  15. // +----------------------------------------------------------------------
  16. // | Date: 2020-09-06 21:53
  17. // +----------------------------------------------------------------------
  18. class News extends BaseController{
  19. /**
  20. * 获取新闻列表
  21. * @param Request $request
  22. * @return type
  23. */
  24. public function getNews(Request $request){
  25. $post = $request->post();
  26. $pageSize = 20;
  27. // $cate_id = $post['cate_id'];
  28. $is_show = $post['is_show'];
  29. $page = empty($post['page'])?1:$post['page'];
  30. $keyword = $post['keyword'];
  31. $news = new NewsModel();
  32. $where = array();
  33. // if(!empty($cate_id)){
  34. // $where[]=["n.cate_id","=",$cate_id];
  35. // }
  36. if($is_show==='0'){
  37. $where[]=["n.is_show","=",0];
  38. }
  39. if($is_show==='1'){
  40. $where[]=["n.is_show","=",1];
  41. }
  42. if(!empty($keyword)){
  43. $where[]=["n.title","like","%{$keyword}%"];
  44. }
  45. $data = $news
  46. ->field("n.*,c.title as cate_title")
  47. ->alias("n")
  48. ->join("news_cate c","c.id = n.cate_id","left")
  49. ->where($where)
  50. ->order("n.time desc")
  51. ->paginate(['list_rows'=>$pageSize,'page'=>$page])
  52. ->toArray();
  53. foreach($data['data'] as $k=>$v){
  54. $data['data'][$k]["time"] = date("Y-m-d H:i:s");
  55. }
  56. return app('json')->success([
  57. 'data' => $data['data'],
  58. 'pageCount' => $data['total'],
  59. 'pageSize' => $pageSize
  60. ]);
  61. }
  62. /**
  63. * 新闻内容保存
  64. * @param Request $request
  65. */
  66. public function newsSave(Request $request){
  67. $news = new NewsModel();
  68. $post = UtilService::getMore([
  69. ['title','','empty','请输入标题'],
  70. ['stitle',''],
  71. ['cate_id',0,'empty','请选择分类'],
  72. ['content',''],
  73. ['imgAr',[]],
  74. ['is_tui',0],
  75. ['is_hot',0],
  76. ['id',0],
  77. ['is_show',0]
  78. ], $request);
  79. $post['img'] = join(',',$post['imgAr']);
  80. unset($post['imgAr']);
  81. $news->newsSave($post);
  82. return app('json')->success("数据保存成功");
  83. }
  84. /**
  85. * 获取新闻详情
  86. */
  87. public function getNewsItem(Request $request){
  88. [$id] = UtilService::getMore([
  89. ['id',0,'empty','数据不存在']
  90. ],$request,true);
  91. $data = (new NewsModel())->find(compact('id'))->toArray();
  92. $data["time"] = date("Y-m-d H:i:s",$data["time"]);
  93. return app('json')->success($data);
  94. }
  95. /**
  96. * 删除新闻
  97. * @param Request $request
  98. */
  99. public function newsDel(Request $request){
  100. [$id] = UtilService::getMore([
  101. ['id',0,'empty','删除数据不存在']
  102. ],$request,true);
  103. $news = new NewsModel();
  104. $news->newsDel($id);
  105. return app('json')->success("数据已删除");
  106. }
  107. /**
  108. * 新闻状态
  109. * @param Request $request
  110. * @return type
  111. */
  112. public function newsShowSet(Request $request){
  113. [$id,$is_show] = UtilService::getMore([
  114. ['id','0','empty','参数错误'],
  115. ['is_show','0']
  116. ],$request,true);
  117. $bool = (new NewsModel())->newsShowSet($id,$is_show);
  118. if($bool) {
  119. return app('json')->success('操作成功');
  120. } else {
  121. return app('json')->fail('提交失败');
  122. }
  123. }
  124. /**
  125. * 获取树级分类
  126. */
  127. public function getCateTree() {
  128. $cateAr = (new NewsCateModel())->order("seq","desc")->select()->toArray();
  129. $data = sort_list_tier($cateAr, '顶级', 'pid', 'id');
  130. return app('json')->success($data);
  131. }
  132. /**
  133. * 获取分类
  134. * @return type
  135. */
  136. public function getCate(){
  137. $newsCate = new NewsCateModel();
  138. $newsCateData = $newsCate->getArCate();
  139. return app('json')->success($newsCateData);
  140. }
  141. /**
  142. * 保存数据
  143. */
  144. public function cateSave(Request $request){
  145. $post = UtilService::getMore([
  146. ['title',''],
  147. ['pid','0'],
  148. ['seq','0'],
  149. ['is_show','0'],
  150. ['code',''],
  151. ['id','0']
  152. ],$request);
  153. (new NewsCateModel())->cateSave($post);
  154. return app('json')->success("数据保存成功");
  155. }
  156. public function getCateItem(Request $request){
  157. [$id] = UtilService::getMore([
  158. ['id',0,'empty','参数错误']
  159. ],$request,true);
  160. $data = (new NewsCateModel())->field("title,id,is_show,pid,code,seq")->find(compact('id'))->toArray();
  161. return app('json')->success($data);
  162. }
  163. public function cateDel(Request $request){
  164. [$id] = UtilService::getMore([
  165. ['id',0,'empty','参数错误']
  166. ],$request,true);
  167. $bool = (new NewsCateModel())->cateDel($id);
  168. return app('json')->success("分类删除成功");
  169. }
  170. public function cateShowSet(Request $request){
  171. [$id,$is_show] = UtilService::getMore([
  172. ['id','0','empty','参数错误'],
  173. ['is_show','0']
  174. ],$request,true);
  175. $bool = (new NewsCateModel())->cateShowSet($id,$is_show);
  176. if($bool) {
  177. return app('json')->success('操作成功');
  178. } else {
  179. return app('json')->fail('提交失败');
  180. }
  181. }
  182. }