HomeController.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Http\Controllers\Home;
  3. use App\Consts\ErrorConst;
  4. use App\Facade\Site;
  5. use App\Libs\ApiResponse;
  6. use App\Libs\Utils;
  7. use App\Models\User\User;
  8. use App\Services\Book\BookService;
  9. use App\Services\User\UserService;
  10. use App\Transformer\Home\HomeTransformer;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Routing\Controller as BaseController;
  13. use Illuminate\Support\Facades\Log;
  14. class HomeController extends BaseController
  15. {
  16. use ApiResponse;
  17. protected $bookService;
  18. protected $userService;
  19. public function __construct(
  20. BookService $bookService,
  21. UserService $userService
  22. )
  23. {
  24. $this->bookService = $bookService;
  25. $this->userService = $userService;
  26. }
  27. /**
  28. * 首页
  29. * @param Request $request
  30. * @return mixed
  31. */
  32. public function index(Request $request) {
  33. $data = $request->all();
  34. Log::info('首页入参: '.json_encode($data, 256));
  35. $gender = getProp($data, 'book_gender');
  36. $result = [];
  37. $result['current_book'] = $this->bookService->getCurrentBook();
  38. $result['book_gender'] = $result['current_book'] ? $result['current_book']['gender'] : 1;
  39. if ($gender) $result['book_gender'] = $gender;
  40. $result['banners'] = $this->bookService->getBanners($result['book_gender']);
  41. $result['feature_books'] = $this->bookService->getFeatureBooks($result['book_gender']);
  42. $result['favorite_books'] = $this->bookService->getFavoriteBooks($result['book_gender']);
  43. // 获取分享链接中的隐藏参数(如果存在隐藏参数邀请码则绑定)
  44. $invite_code = getProp($data, 'invite_code');
  45. $uid = Site::getUid();
  46. $from_uid = User::where('invite_code', $invite_code)->value('id');
  47. if ($from_uid && $uid) {
  48. $info = $this->userService->bind($from_uid, $uid); // 绑定邀请码
  49. Log::info('首页邀请码绑定结果-----from_uid: '.$from_uid.';uid: '.$uid.';info: '.$info);
  50. }
  51. // 获取分享链接中的隐藏参数(如果存在隐藏参数派单id则绑定)
  52. $send_order_id = getProp($data, 'send_order_id');
  53. $uid = Site::getUid();
  54. if ($send_order_id && $uid) {
  55. $info = $this->userService->bindSendOrder($send_order_id); // 绑定派单链接
  56. Log::info('首页派单链接绑定结果-----send_order_id: '.$send_order_id.';uid: '.$uid.';info: '.$info);
  57. }
  58. return $this->success($result, [new HomeTransformer(), 'newBuildHomeList']);
  59. }
  60. /**
  61. * 抖音投放第三方监测链接
  62. * @param Request $request
  63. * @return mixed
  64. */
  65. public function listenData(Request $request) {
  66. $data = $request->all();
  67. dLog('listen_data')->info('监测链接入参: ', $data);
  68. return $this->success(['success'=>1]);
  69. }
  70. }