ArticleController.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Article;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Storage;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Support\Facades\Log;
  8. class ArticleController extends Controller
  9. {
  10. //获取文章信息列表
  11. public function getArticleList(Request $request){
  12. $input=$request->all();
  13. $page_size=$input['page_size'];
  14. $page_index=$input['page_index'];
  15. $num = ($page_index - 1) * $page_size;
  16. $search_name=$input['search_name'];
  17. $where=[];
  18. $count=Article::where('title', 'like', '%' . $search_name . '%')
  19. ->where(function ($query) {
  20. $query->where('type', '=', '1')
  21. ->orWhere('type', '=', '0');
  22. })
  23. ->where($where)
  24. ->count();
  25. if($count==0){
  26. $this->error('400001','没有数据');
  27. }
  28. $list=Article::where('title', 'like', '%' . $search_name . '%')
  29. ->where(function ($query) {
  30. $query->where('type', '=', '1')
  31. ->orWhere('type', '=', '0');
  32. })
  33. ->where($where)
  34. ->orderBy('id','desc')
  35. ->skip($num)->take($page_size)
  36. ->get();
  37. if(empty($list)){
  38. return $this->error('400002','没有获取到数据');
  39. }
  40. return $this->success_list($list,'success',$count);
  41. }
  42. //获取直播信息列表
  43. public function getLiveViewList(Request $request){
  44. $input=$request->all();
  45. $page_size=$input['page_size'];
  46. $page_index=$input['page_index'];
  47. $num = ($page_index - 1) * $page_size;
  48. $search_name=$input['search_name'];
  49. $where=[];
  50. $where['type']=2;
  51. $count=Article::where('title', 'like', '%' . $search_name . '%')
  52. ->where($where)
  53. ->count();
  54. if($count==0){
  55. $this->error('400001','没有数据');
  56. }
  57. $list=Article::where('title', 'like', '%' . $search_name . '%')
  58. ->where($where)
  59. ->orderBy('id','desc')
  60. ->skip($num)->take($page_size)
  61. ->get();
  62. if(empty($list)){
  63. return $this->error('400002','没有获取到数据');
  64. }
  65. return $this->success_list($list,'success',$count);
  66. }
  67. //上传图片
  68. public function uploadArticleImage(Request $request){
  69. $path = $request->file('file')->store('articel');
  70. $url = Storage::url($path);
  71. if($url){
  72. return $this->success($url);
  73. }
  74. return $this->error();
  75. }
  76. //添加直播信息
  77. public function uploadLiveView(Request $request){
  78. $input=$request->all();
  79. $data['title']=$input['title'];
  80. $data['label']=2;// 1表示clwz,2表示其他
  81. $data['aid']=Auth::user()->id;
  82. $data['status']=1; // 0为草稿 1为正常 2为删除
  83. $data['type']=2;// 1表示视频, 0表示文章 ,2直播
  84. $data['imgurl']=$input['thumb'];
  85. $data['contents']=$input['link'];
  86. $data['summary']=$input['desc'];
  87. $data['startime']=$input['start_time'];
  88. $row=Article::create($data);
  89. if($row){
  90. Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加直播成功,id:'.$row->id);
  91. return $this->success([]);
  92. }
  93. return $this->error();
  94. }
  95. //添加社区信息
  96. public function uploadArticle(Request $request){
  97. $input=$request->all();
  98. $data['title']=$input['title'];
  99. $data['label']=$input['label'];// 1表示clwz,2表示其他
  100. $data['aid']=Auth::user()->id;
  101. $data['author']=$input['author'];
  102. $data['status']=1;
  103. $data['type']=$input['type'];// 1表示视频,0表示文章
  104. $data['contents']=$input['contents'];
  105. $data['summary']=$this->make_excerpt($input['contents']);
  106. $row=Article::create($data);
  107. if($row){
  108. Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加文章成功,id:'.$row->id);
  109. return $this->success([]);
  110. }
  111. return $this->error();
  112. }
  113. //截取简介
  114. function make_excerpt($value, $length = 200)
  115. {
  116. $excerpt = trim(preg_replace('/\r\n|\r|\n+/', ' ', strip_tags($value)));
  117. return str_limit($excerpt, $length);
  118. }
  119. //修改社区信息
  120. public function updateArticle(Request $request){
  121. $input=$request->all();
  122. $data['title']=$input['title'];
  123. $data['label']=$input['label'];// 1表示clwz,2表示其他
  124. $data['aid']=Auth::user()->id;
  125. $data['author']=$input['author'];
  126. $data['type']=$input['type'];// 1表示视频,0表示文章
  127. // $data['imgurl']=$input['imgurl'];
  128. $data['contents']=$input['contents'];
  129. $data['summary']=$this->make_excerpt($input['contents']);
  130. $row=Article::where('id',$input['id'])->update($data);
  131. if($row){
  132. Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改文章成功,id:'.$input['id']);
  133. return $this->success([]);
  134. }
  135. return $this->error();
  136. }
  137. //删除社区信息
  138. public function destoryArticle(Request $request){
  139. $input=$request->all();
  140. $article=Article::find($input['id']);
  141. $row=$article->delete();
  142. if($row){
  143. Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')删除文章成功,id:'.$input['id']);
  144. return $this->success([]);
  145. }
  146. return $this->error();
  147. }
  148. //修改直播信息
  149. public function updateArticleLive(Request $request){
  150. $input=$request->all();
  151. $data['title']=$input['title'];
  152. // $data['label']=2;// 1表示clwz,2表示其他
  153. $data['aid']=Auth::user()->id;
  154. // $data['status']=1; // 0为草稿 1为正常 2为删除
  155. // $data['type']=2;// 1表示视频, 0表示文章 ,2直播
  156. $data['imgurl']=$input['thumb'];
  157. $data['contents']=$input['link'];
  158. $data['summary']=$input['desc'];
  159. $data['startime']=$input['start_time'];
  160. $row=Article::where('id',$input['id'])->update($data);
  161. if($row){
  162. Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改直播成功,id:'.$input['id']);
  163. return $this->success([]);
  164. }
  165. return $this->error();
  166. }
  167. //删除直播信息
  168. public function destoryArticleLive(Request $request){
  169. $input=$request->all();
  170. $article=Article::find($input['id']);
  171. $row=$article->delete();
  172. if($row){
  173. Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')删除直播成功,id:'.$input['id']);
  174. return $this->success([]);
  175. }
  176. return $this->error();
  177. }
  178. }