123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- <?php
- namespace App\Http\Controllers;
- use App\Handlers\AudioUploadHandler;
- use App\Handlers\VideoUploadHandler;
- use App\Models\Article;
- use App\Models\ArticleGroup;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Storage;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Log;
- class ArticleController extends Controller
- {
- //获取文章信息列表
- public function getArticleList(Request $request){
- $input=$request->all();
- $page_size=$input['page_size'];
- $page_index=$input['page_index'];
- $num = ($page_index - 1) * $page_size;
- $search_name=$input['search_name'];
- $where=[];
- $wheres=[];
- if (isset($input['group_id'])){
- $group_id=$input['group_id'];
- $wheres=function ($q)use($group_id){
- $q->where('group_id',$group_id);
- };
- }
- $count=Article::where('title', 'like', '%' . $search_name . '%')
- ->where(function ($query) {
- $query->where('type', '=', '1')
- ->orWhere('type', '=', '0');
- })
- ->where($where)
- ->where($wheres)
- ->count();
- if($count==0){
- $this->error('400001','没有数据');
- }
- $list=Article::where('title', 'like', '%' . $search_name . '%')
- ->where(function ($query) {
- $query->where('type', '=', '1')
- ->orWhere('type', '=', '0');
- })
- ->where($where)
- ->where($wheres)
- ->orderBy('id','desc')
- ->skip($num)->take($page_size)
- ->get();
- if(empty($list)){
- return $this->error('400002','没有获取到数据');
- }
- return $this->success_list($list,'success',$count);
- }
- //获取直播信息列表
- public function getLiveViewList(Request $request){
- $input=$request->all();
- $page_size=$input['page_size'];
- $page_index=$input['page_index'];
- $num = ($page_index - 1) * $page_size;
- $search_name=$input['search_name'];
- $where=[];
- $where['type']=2;
- $count=Article::where('title', 'like', '%' . $search_name . '%')
- ->where($where)
- ->count();
- if($count==0){
- $this->error('400001','没有数据');
- }
- $list=Article::where('title', 'like', '%' . $search_name . '%')
- ->where($where)
- ->orderBy('id','desc')
- ->skip($num)->take($page_size)
- ->get();
- if(empty($list)){
- return $this->error('400002','没有获取到数据');
- }
- return $this->success_list($list,'success',$count);
- }
- //上传图片
- public function uploadArticleImage(Request $request){
- $path = $request->file('file')->store('articel');
- $url = Storage::url($path);
- if($url){
- return $this->success($url);
- }
- return $this->error();
- }
- //添加直播信息
- public function uploadLiveView(Request $request){
- $input=$request->all();
- $data['title']=$input['title'];
- $data['label']=2;// 1表示clwz,2表示其他
- $data['aid']=Auth::user()->id;
- $data['status']=1; // 0为草稿 1为正常 2为删除
- $data['type']=2;// 1表示视频, 0表示文章 ,2直播
- $data['imgurl']=$input['thumb'];
- $data['avatar']=$input['avatar'];
- $data['contents']=$input['link'];
- $data['summary']=$input['desc'];
- $data['startime']=$input['start_time'];
- $row=Article::create($data);
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加直播成功,id:'.$row->id);
- return $this->success([]);
- }
- return $this->error();
- }
- //添加社区信息
- public function uploadArticle(Request $request){
- $input=$request->all();
- $data['title']=$input['title'];
- $data['label']=$input['label'];// 1表示clwz,2表示其他
- $data['aid']=Auth::user()->id;
- $data['author']=$input['author'];
- $data['avatar']=$input['avatar'];
- if (isset($input['is_top'])){
- $data['is_top']=$input['is_top'];
- $data['recommended']=$input['recommended'];
- if ($input['recommended']==1){
- Article::where('status',1)->update(['recommended'=>0]);
- }
- $data['group_id']=$input['group_id'];
- $data['issue']=$input['issue'];
- $re=ArticleGroup::find($input['group_id']);
- $data['group_name']=$re->group_name;
- }
- $data['status']=1;
- $data['type']=$input['type'];// 1表示视频,0表示文章
- $data['contents']=$input['contents'];
- $data['summary']=$this->make_excerpt($input['contents']);
- $row=Article::create($data);
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加文章成功,id:'.$row->id);
- return $this->success([]);
- }
- return $this->error();
- }
- //截取简介
- function make_excerpt($value, $length = 200)
- {
- $excerpt = trim(preg_replace('/\r\n|\r|\n+/', ' ', strip_tags($value)));
- return str_limit($excerpt, $length);
- }
- //修改社区信息
- public function updateArticle(Request $request){
- $input=$request->all();
- $data['title']=$input['title'];
- $data['label']=$input['label'];// 1表示clwz,2表示其他
- $data['aid']=Auth::user()->id;
- $data['author']=$input['author'];
- $data['avatar']=$input['avatar'];
- $data['type']=$input['type'];// 1表示视频,0表示文章
- if (isset($input['is_top'])){
- $data['is_top']=$input['is_top'];
- $data['recommended']=$input['recommended'];
- if ($input['recommended']==1){
- Article::where('status',1)->update(['recommended'=>0]);
- }
- $data['group_id']=$input['group_id'];
- $data['issue']=$input['issue'];
- $re=ArticleGroup::find($input['group_id']);
- $data['group_name']=$re->group_name;
- }
- // $data['imgurl']=$input['imgurl'];
- $data['contents']=$input['contents'];
- $data['summary']=$this->make_excerpt($input['contents']);
- $row=Article::where('id',$input['id'])->update($data);
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改文章成功,id:'.$input['id']);
- return $this->success([]);
- }
- return $this->error();
- }
- //删除社区信息
- public function destoryArticle(Request $request){
- $input=$request->all();
- $article=Article::find($input['id']);
- $row=$article->delete();
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')删除文章成功,id:'.$input['id']);
- return $this->success([]);
- }
- return $this->error();
- }
- //修改直播信息
- public function updateArticleLive(Request $request){
- $input=$request->all();
- $data['title']=$input['title'];
- // $data['label']=2;// 1表示clwz,2表示其他
- $data['aid']=Auth::user()->id;
- // $data['status']=1; // 0为草稿 1为正常 2为删除
- // $data['type']=2;// 1表示视频, 0表示文章 ,2直播
- $data['imgurl']=$input['thumb'];
- $data['contents']=$input['link'];
- $data['summary']=$input['desc'];
- $data['startime']=$input['start_time'];
- $row=Article::where('id',$input['id'])->update($data);
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改直播成功,id:'.$input['id']);
- return $this->success([]);
- }
- return $this->error();
- }
- //删除直播信息
- public function destoryArticleLive(Request $request){
- $input=$request->all();
- $article=Article::find($input['id']);
- $row=$article->delete();
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')删除直播成功,id:'.$input['id']);
- return $this->success([]);
- }
- return $this->error();
- }
- /*
- * 上传音频
- * ***/
- public function upload_audio(Request $request,AudioUploadHandler $audioUploadHandler){
- $re=$audioUploadHandler->save($request->audio,'audio','audio');
- if ($re){
- return $this->success(['path'=>$re['path']]);
- }
- return $this->error(50024,'长传失败');
- }
- /*
- * 上传视频
- * ***/
- public function upload_video(Request $request,VideoUploadHandler $videoUploadHandler){
- $re=$videoUploadHandler->save($request->video,'video','video');
- if ($re){
- return $this->success(['path'=>$re['path']]);
- }
- return $this->error(50024,'长传失败');
- }
- /*
- * 获取分组
- * ***/
- public function GetArticleGroup(Request $request){
- $input=$request->all();
- // $page_index=$input['page_index'];
- // $page_size=$input['page_size'];
- $status=$input['status'];
- $search_content=$input['search_content'];
- $g=ArticleGroup::where('status',$status);
- if ($search_content){
- $g->where('group_name','like','%'.$search_content.'%');
- }
- $data=$g->select('group_name','id','sort')->orderBy('sort')->get();
- return $this->success_list($data);
- }
- public function AddArticleGroup(Request $request){
- $input=$request->all();
- $re=ArticleGroup::where('group_name',$input['group_name'])->first();
- if ($re){
- return $this->error(50021,'已有当前分组');
- }
- $g=new ArticleGroup();
- $g->group_name=$input['group_name'];
- $g->status=$input['status'];
- $g->save();
- return $this->success([]);
- }
- /*
- * 设置置顶
- * **/
- public function SetArticleTop(Request $request){
- $data=Article::find($request->id);
- if ($data->is_top==1){
- $data->is_top=0;
- }else{
- $data->is_top=1;
- }
- $data->save();
- return $this->success([]);
- }
- /*
- * 设置推荐
- * ***/
- public function SetArticleRecom(Request $request){
- $data=Article::find($request->type);
- Article::update(['recommended'=>0]);
- $data->recommended=1;
- $data->save();
- return $this->success([]);
- }
- }
|