success($data); } //获取列表 public function list(Request $request): \Illuminate\Http\JsonResponse { $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $c_id=$request->input('c_id'); $num=$page_size*($page_index-1); $level=Auth::user()->level; $permission=Course::$levelCourse[$level]; $data=Course::setField()->where('state',1) ->whereIn('permission',$permission); if($c_id){ $data->where('c_id',$c_id); } $count=$data->count(); $list=$data->orderByDesc('is_top')->orderByDesc('top_at')->orderBy('id','desc') ->skip($num)->take($page_size)->get(); return $this->success_list($list,'',$count); } //最近上传 public function current(Request $request): \Illuminate\Http\JsonResponse { $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $num=$page_size*($page_index-1); $level=Auth::user()->level; $permission=Course::$levelCourse[$level]; $count=Course::setField()->where('state',1)->whereIn('permission',$permission) ->where('created_at','>',Carbon::now()->subWeeks(1))->count(); $list=Course::query()->where('state',1)->whereIn('permission',$permission) ->where('created_at','>',Carbon::now()->subWeeks(1)) ->orderByDesc('is_top')->orderByDesc('top_at')->orderBy('id','desc') ->skip($num)->take($page_size)->get(); return $this->success_list($list,'',$count); } //获取课程详情 public function detail(Request $request) { $id=$request->input('id'); $user=Auth::guard('api')->user(); $permission=Course::$levelCourse[$user->level];//获取用户对应课程权限 $res=null; if($user){ $res = Collection::where('user_id',$user->id)->where('course_id',$id)->exists(); } $course=Course::query()->where('id',$id)->first(); if(!in_array($course->permission,$permission)){ //判断用户是否有权限访问 return $this->error('450001','','你没有权限访问该课程'); } if(empty($course)){ return $this->error('450001','','课程不存在'); } if($course->state==0){ return $this->error('450001','','课程已下线'); } $info['Course']=$course; if($res){ $info['user']['is_collection'] = 1; }else{ $info['user']['is_collection'] = 0; } //阅读记录 Read::create([ 'user_id'=>$user->id, 'course_id'=>$id, ]); Course::where('id',$id)->increment('read'); return $this->success($info); } //课程评论 public function getCourseComment(Request $request) { $user_id=Auth::user()->id; $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $id=$request->input('id'); $num=$page_size*($page_index-1); $data=Comment::where('course_id',$id) ->where(function($query)use($user_id){ $query->where('state',1)->orWhere('user_id',$user_id); }); $count=$data->count(); $list = $data->with(['user:id,nickname,headimgurl']) ->skip($num)->take($page_size) ->get(); return $this->success_list($list,'',$count); } //浏览 public function read(Request $request): \Illuminate\Http\JsonResponse { $user_id = Auth::guard('api')->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 ]); Course::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::guard('api')->user()->id; $course_id=$request->input('course_id'); try{ DB::transaction(function()use($user_id,$course_id){ Share::create([ 'user_id'=>$user_id, 'course_id'=>$course_id ]); Course::where('id',$course_id)->increment('share'); },5); return $this->success([]); }catch(\Exception $e){ return $this->error(); } } //提交评论 public function addComment(Request $request) { $user_id=Auth::guard('api')->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); $count=Comment::where('article_id',0)->count(); $list=Comment::where('article_id',0)->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=Auth::guard('api')->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('article_id',0)->count(); $data['comment']=Comment::where('article_id',0)->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='https://weiliao.woaidakele.cn/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); } }