BloggerController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Requests\Api\PostsRequests\BloggerRequest;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\DB;
  6. class BloggerController extends BaseController
  7. {
  8. //答主获取自己的详情
  9. public function getInfo(Request $request){
  10. $blogger = DB::table('blogger')->where('user_id',$request->uid)->first();
  11. if(empty($blogger)){
  12. return $this->fail(200016,[],'您还没有成为答主');
  13. }
  14. if($blogger->status != 1){
  15. return $this->fail(200016,[],'您还没有认证答主');
  16. }
  17. return $this->success($blogger);
  18. }
  19. //收费设置
  20. public function setPrice(BloggerRequest $request){
  21. // 验证
  22. $request->validate('setPrice');
  23. if($request->ask_price <= 0){
  24. return $this->fail(200016,[],'咨询价格最小0元');
  25. }
  26. if($request->sit_price <= 0){
  27. return $this->fail(200016,[],'旁听价格最小0元');
  28. }
  29. if($request->ask_minute <= 0){
  30. return $this->fail(200016,[],'咨询时间最小1分钟');
  31. }
  32. $blogger = DB::table('blogger')->where('user_id',$request->uid)->first();
  33. if(empty($blogger)){
  34. return $this->fail(200016,[],'您还没有成为答主');
  35. }
  36. if($blogger->status != 1){
  37. return $this->fail(200016,[],'您还没有认证答主');
  38. }
  39. DB::table('blogger')->where('user_id',$request->uid)->update([
  40. 'ask_price' => $request->ask_price,
  41. 'sit_price' => $request->sit_price,
  42. 'ask_minute' => $request->ask_minute,
  43. ]);
  44. return $this->success();
  45. }
  46. //答主所属类型列表
  47. public function typeList(Request $request){
  48. $list = DB::table('blogger_type')->orderBy('weight', 'desc')->orderBy('id', 'desc')->get();
  49. return $this->success($list);
  50. }
  51. //答主列表。 推荐答主列表(随机)、按类型答主列表
  52. public function lists(Request $request){
  53. //分页
  54. $page = $request->page ?? 1;
  55. $limit = $request->limit ?? 10;
  56. $offset = ($page - 1) * $limit;
  57. //按类型搜
  58. $type_id = $request->type_id ?? 0;
  59. //
  60. $list = DB::table('blogger')
  61. ->leftJoin('wx_user','wx_user.id','=','blogger.user_id')
  62. ->select('blogger.*','wx_user.user_avatar','wx_user.user_name')
  63. ->where('blogger.status',1);
  64. if($type_id){
  65. $list = $list->whereRaw('FIND_IN_SET(?,type_ids)',[$type_id]);
  66. }
  67. $list = $list->inRandomOrder()->offset($offset)->limit($limit)->get();
  68. return $this->success($list);
  69. }
  70. }