CircleController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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 App\Transformers\Circle\QuestionTransformer;
  13. use Illuminate\Http\Request;
  14. use Illuminate\Support\Facades\Log;
  15. use Illuminate\Support\Facades\Redis;
  16. use Illuminate\Support\Facades\Validator;
  17. use Illuminate\Validation\Rule;
  18. use League\Fractal\Manager;
  19. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  20. use League\Fractal\Resource\Collection;
  21. use League\Fractal\Resource\Item;
  22. class CircleController extends Controller
  23. {
  24. use UserTrait;
  25. public function __construct(CircleRepository $circleRepository)
  26. {
  27. $this->circleRepository = $circleRepository;
  28. }
  29. /**
  30. * 圈子首页
  31. * @param Request $request
  32. */
  33. public function index(Request $request)
  34. {
  35. $userInfo = $this->getUserInfo();
  36. if ($userInfo) {
  37. $uid = $userInfo['uid'];
  38. }else{
  39. $uid = 0;
  40. }
  41. $validator = Validator::make($request->all(), [
  42. 'id' => 'required|exists:interest_circles'
  43. ]);
  44. if ($validator->fails()) {
  45. return $this->jsonError($validator->errors()->first());
  46. }
  47. $detail = $this->circleRepository->detail($request->all());
  48. if ($detail) {
  49. $fractal = new Manager();
  50. $res = new Item($detail, new DetailTransformer($uid));
  51. $data = $fractal->createData($res)->toArray();
  52. }
  53. return $this->jsonSuccess($data);
  54. }
  55. /**
  56. * 查询圈子问题
  57. * @param Request $request
  58. * @return array
  59. */
  60. public function getQuestion(Request $request){
  61. $userInfo = $this->getUserInfo();
  62. if ($userInfo) {
  63. $uid = $userInfo['uid'];
  64. }else{
  65. $uid = 0;
  66. }
  67. $validator = Validator::make($request->all(), [
  68. 'id' => 'required|exists:interest_circles'
  69. ]);
  70. if ($validator->fails()) {
  71. return $this->jsonError($validator->errors()->first());
  72. }
  73. $detail = $this->circleRepository->detail($request->all());
  74. if ($detail) {
  75. $fractal = new Manager();
  76. $res = new Item($detail, new QuestionTransformer($uid));
  77. $data = $fractal->createData($res)->toArray();
  78. }
  79. return $this->jsonSuccess($data);
  80. }
  81. /**
  82. * 加入圈子
  83. * @param Request $request
  84. * @return array
  85. */
  86. public function joinCircle(Request $request){
  87. $userInfo = $this->getUserInfo();
  88. if($userInfo){
  89. return $this->jsonError('获取用户信息失败');
  90. }
  91. $validator = Validator::make($request->all(), [
  92. 'id' => 'required|exists:interest_circles'
  93. ]);
  94. if ($validator->fails()) {
  95. return $this->jsonError($validator->errors()->first());
  96. }
  97. return $this->circleRepository->joinCircle($request->all(),$userInfo);
  98. }
  99. /**
  100. * 退出圈子
  101. * @param Request $request
  102. * @return array
  103. */
  104. public function exitCircle(Request $request){
  105. $userInfo = $this->getUserInfo();
  106. if($userInfo){
  107. return $this->jsonError('获取用户信息失败');
  108. }
  109. $validator = Validator::make($request->all(), [
  110. 'id' => 'required|exists:interest_circles'
  111. ]);
  112. if ($validator->fails()) {
  113. return $this->jsonError($validator->errors()->first());
  114. }
  115. return $this->circleRepository->exitCircle($request->all(),$userInfo);
  116. }
  117. }