CircleController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/6/14
  6. * Time: 16:23
  7. */
  8. namespace App\Http\Controllers\V1;
  9. use App\Repositories\Circle\CircleRepository;
  10. use App\Traits\UserTrait;
  11. use App\Transformers\Circle\DetailTransformer;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Support\Facades\Log;
  14. use Illuminate\Support\Facades\Redis;
  15. use Illuminate\Support\Facades\Validator;
  16. use Illuminate\Validation\Rule;
  17. use League\Fractal\Manager;
  18. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  19. use League\Fractal\Resource\Collection;
  20. use League\Fractal\Resource\Item;
  21. class CircleController extends Controller
  22. {
  23. use UserTrait;
  24. public function __construct(CircleRepository $circleRepository)
  25. {
  26. $this->circleRepository = $circleRepository;
  27. }
  28. /**
  29. * 圈子首页
  30. * @param Request $request
  31. */
  32. public function index(Request $request)
  33. {
  34. $userInfo = $this->getUserInfo();
  35. if ($userInfo) {
  36. $uid = $userInfo['uid'];
  37. }else{
  38. $uid = 0;
  39. }
  40. $validator = Validator::make($request->all(), [
  41. 'id' => 'required|exists:interest_circles'
  42. ]);
  43. if ($validator->fails()) {
  44. return $this->jsonError($validator->errors()->first());
  45. }
  46. $detail = $this->circleRepository->detail($request->all());
  47. if ($detail) {
  48. $fractal = new Manager();
  49. $res = new Item($detail, new DetailTransformer($uid));
  50. $data = $fractal->createData($res)->toArray();
  51. }
  52. return $this->jsonSuccess($data);
  53. }
  54. }