success(['count'=>0]); $data['count']=Read::count(); return $this->success($data); } //获取列表 public function list(Request $request): \Illuminate\Http\JsonResponse { $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $sort=$request->input('sort'); $num=$page_size*($page_index-1); $count=Article::query()->where('shelves',1)->count(); $list=Article::query()->where('shelves',1) ->select('title','stage','audio','perface','created_at','id','duration','size','shelves','read','like','share','timing_shelves','volume') ->orderBy('created_at',$sort)->skip($num)->take($page_size)->get(); return $this->success_list($list,'',$count); } //获取单个信息详情 public function detail(Request $request) { $id=$request->input('id'); $user=Auth::user(); $res=null; if(!empty($user)){ $res = Like::where('user_id',$user->id)->where('article_id',$id)->exists(); } $info['article']=Article::query()->where('id',$id)->first(); if($res){ $info['user']['is_like'] = 1; }else{ $info['user']['is_like'] = 0; } if(!empty($user)){ $where=function($query)use($user){ $query->where('user_id',$user->id)->orWhere(function($q)use($user){ $q->where('user_id','<>',$user->id)->where('is_audit',1); }); }; }else{ $where=function($query){ $query->where('is_audit',1); }; } $info['comment']=Comment::where('article_id',$id)->where($where)->with(['user:id,nickname,headimgurl'])->get(); return $this->success($info); } //点赞 public function like(Request $request): \Illuminate\Http\JsonResponse { $user_id=Auth::user()->id; $article_id=$request->input('article_id'); // $res=Like::create([ // 'user_id'=>$user_id, // 'article_id'=>$article_id // ]); // $res=Redis::sismember('like:article', $article_id.':'.$user_id); // if($res){ // Redis::srem('like:article', $article_id.':'.$user_id); // Redis::decr('article_'.$article_id.'_count'); // Redis::hdel('article_user_like', $article_id.'_'.$user_id); // }else{ // Redis::sadd('like:article', $article_id.':'.$user_id); // Redis::incr('article_'.$article_id.'_count'); // Redis::hset('article_user_like', $article_id.'_'.$user_id, Carbon::now()); // } $res=Like::query()->where('user_id',$user_id)->where('article_id',$article_id)->first(); try{ DB::transaction(function()use($res,$user_id,$article_id) { if ($res) { Article::query()->where('id', $article_id)->decrement('like'); Like::query()->where('user_id', $user_id)->where('article_id', $article_id)->delete(); } else { Article::query()->where('id', $article_id)->increment('like'); Like::query()->create([ 'user_id' => $user_id, 'article_id' => $article_id, ]); } },5); return $this->success([]); }catch(\Exception $e){ return $this->error(); } // Redis::set('name','wetalk'); // return Redis::get('name'); } //浏览 public function read(Request $request): \Illuminate\Http\JsonResponse { $user_id = Auth::user()->id; $article_id = $request->input('article_id'); try{ DB::transaction(function()use($user_id,$article_id){ Read::create([ 'user_id' => $user_id, 'article_id' => $article_id ]); Article::where('id',$article_id)->increment('read'); },5); return $this->success([]); }catch(\Exception $e){ return $this->error(); } } //分享 public function share(Request $request): \Illuminate\Http\JsonResponse { $user_id=Auth::user()->id; $article_id=$request->input('article_id'); try{ DB::transaction(function()use($user_id,$article_id){ Share::create([ 'user_id'=>$user_id, 'article_id'=>$article_id ]); Article::where('id',$article_id)->increment('share'); },5); return $this->success([]); }catch(\Exception $e){ return $this->error(); } } //提交评论 public function addComment(Request $request) { $user_id=Auth::user()->id; $content=$request->input('content'); if($request->input('article_id')=='wetalk'){ $article_id=0; }else{ $article_id=$request->input('article_id'); } $res=Comment::create([ 'user_id'=>$user_id, 'article_id'=>$article_id, 'content'=>$content, 'is_audit'=>0 ]); if($res){ return $this->success([]); }else{ return $this->error(); } } //获取微聊所有评论 public function getAllWetalkComment(Request $request) { $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $num=$page_size*($page_index-1); $where=function($query){ $query->where('user_id',Auth::user()->id)->orWhere(function($q){ $q->where('user_id','<>',Auth::user()->id)->where('is_audit',1); }); }; $count=Comment::where('article_id',0)->where($where)->count(); $list=Comment::where('article_id',0)->where($where)->with(['user:id,nickname,headimgurl'])->skip($num)->take($page_size)->get(); return $this->success_list($list,'',$count); } //获取微聊所有点赞 public function getArticleLike(Request $request) { $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $sort=$request->input('sort'); $num=$page_size*($page_index-1); $user_id=$request->input('user_id')??Auth::user()->id; $count=Like::where('user_id',$user_id)->count(); $list=Like::where('user_id',$user_id)->has('article')->with(['user:id,nickname,headimgurl','article'=>function($query){ $query->where('id','>',0); }])->orderBy('created_at',$sort)->skip($num)->take($page_size)->get(); return $this->success_list($list,'',$count); } //获取微聊首页三数据 public function getWetalkData(Request $request) { $data['like']=Like::where('user_id',Auth::user()->id)->count(); $where=function($query){ $query->where('user_id',Auth::user()->id)->orWhere(function($q){ $q->where('user_id','<>',Auth::user()->id)->where('is_audit',1); }); }; $data['comment']=Comment::where('article_id',0)->where($where)->count(); $data['share']=Share::where('article_id',0)->count(); return $this->success($data); } //获取微信授权 public function getSignPackage() { $config = config('wechat.official_account.daweiboshi'); $app = Factory::officialAccount($config); $url='http://api.app.cliu.cc/api/gzh'; $app->jssdk->setUrl($url); $data=$app->jssdk->buildConfig(array('onMenuShareAppMessage','onMenuShareTimeline', 'openLocation','getLocation','chooseImage', 'uploadImage', 'downloadImage','scanQRCode', 'updateAppMessageShareData', 'updateTimelineShareData'), true); return $this->success($data); } }