leftJoin('wx_user','wx_user.id','=','blogger.user_id') ->select('blogger.*','wx_user.user_avatar','wx_user.user_name') ->where('blogger.user_id',$request->uid)->first(); if(empty($blogger)){ return $this->fail(200016,[],'您还没有成为答主'); } /*if($blogger->status != 1){ return $this->fail(200016,[],'您还没有认证答主'); }*/ return $this->success($blogger); } //用户获得答主的详情 public function info(Request $request){ $blogger = DB::table('blogger') ->leftJoin('wx_user','wx_user.id','=','blogger.user_id') ->select('blogger.*','wx_user.user_avatar','wx_user.user_name') ->where('blogger.user_id',$request->user_id)->first(); if(empty($blogger)){ return $this->fail(200016,[],'没有找到该答主'); } /*if($blogger->status != 1){ return $this->fail(200016,[],'您还没有认证答主'); }*/ return $this->success($blogger); } //答主设置收费 public function setPrice(BloggerRequest $request){ // 验证 $request->validate('setPrice'); if($request->ask_price <= 0){ return $this->fail(200016,[],'咨询价格最小0元'); } if($request->sit_price <= 0){ return $this->fail(200016,[],'旁听价格最小0元'); } if($request->ask_minute <= 0){ return $this->fail(200016,[],'咨询时间最小1分钟'); } $blogger = DB::table('blogger')->where('user_id',$request->uid)->first(); if(empty($blogger)){ return $this->fail(200016,[],'您还没有成为答主'); } /*if($blogger->status != 1){ return $this->fail(200016,[],'您还没有认证答主'); }*/ DB::table('blogger')->where('user_id',$request->uid)->update([ 'ask_price' => $request->ask_price, 'sit_price' => $request->sit_price, 'ask_minute' => $request->ask_minute, ]); return $this->success(); } //答主设置咨询状态 public function setAskStatus(BloggerRequest $request){ $blogger = DB::table('blogger')->where('user_id',$request->uid)->first(); if(empty($blogger)){ return $this->fail(200016,[],'您还没有成为答主'); } /*if($blogger->status != 1){ return $this->fail(200016,[],'您还没有认证答主'); }*/ DB::table('blogger')->where('user_id',$request->uid)->update([ 'ask_status' => $request->ask_status, ]); return $this->success(); } //答主所属类型列表 public function typeList(Request $request){ $list = DB::table('blogger_type')->orderBy('weight', 'desc')->orderBy('id', 'desc')->get(); return $this->success($list); } //答主列表。 推荐答主列表(随机)、按类型答主列表 public function lists(Request $request){ //分页 $page = $request->page ?? 1; $limit = $request->limit ?? 10; $offset = ($page - 1) * $limit; //按类型搜 $type_id = $request->type_id ?? 0; //搜索 $keyword = _empty_default_($request->keyword,''); // $list = DB::table('blogger') ->leftJoin('wx_user','wx_user.id','=','blogger.user_id') ->select('blogger.*','wx_user.user_avatar','wx_user.user_name') ->where('blogger.status',1) ->inRandomOrder()->offset($offset)->limit($limit); if($type_id){ $list = $list->whereRaw('FIND_IN_SET(?,type_ids)',[$type_id]); } if($keyword){ $list = $list->where(function($query) use ($keyword) { $query->orWhere('wx_user.user_name','like','%'.$keyword.'%') ->orWhere('blogger.info' ,'like','%'.$keyword.'%'); })->reorder('blogger.user_id','desc'); } $list = $list->get(); return $this->success($list); } }