xielin 5 år sedan
förälder
incheckning
db70e6728e

+ 24 - 0
app/Http/Controllers/V1/CircleController.php

@@ -11,6 +11,7 @@ namespace App\Http\Controllers\V1;
 use App\Repositories\Circle\CircleRepository;
 use App\Traits\UserTrait;
 use App\Transformers\Circle\DetailTransformer;
+use App\Transformers\Circle\QuestionTransformer;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Facades\Redis;
@@ -56,5 +57,28 @@ class CircleController extends Controller
         return $this->jsonSuccess($data);
     }
 
+    public function getQuestion(Request $request){
+        $userInfo = $this->getUserInfo();
+        if ($userInfo) {
+            $uid = $userInfo['uid'];
+        }else{
+            $uid = 0;
+        }
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|exists:interest_circles'
+        ]);
+        if ($validator->fails()) {
+            return $this->jsonError($validator->errors()->first());
+        }
+        $detail = $this->circleRepository->detail($request->all());
+        if ($detail) {
+            $fractal = new Manager();
+            $res = new Item($detail, new QuestionTransformer($uid));
+            $data = $fractal->createData($res)->toArray();
+        }
+        return $this->jsonSuccess($data);
+    }
+
+
 
 }

+ 3 - 3
app/Transformers/Circle/DetailTransformer.php

@@ -31,10 +31,10 @@ class DetailTransformer extends TransformerAbstract
             'image' => $interestCircle['image'],
             'functions' => $this->getFunction($interestCircle),
             'join_limit' => $interestCircle['join_limit'],
-            'limit_condition' => $interestCircle['limit_condition'],
-            'join_question' => (json_decode($interestCircle['join_question'], true)) ?? [],
+            //'limit_condition' => $interestCircle['limit_condition'],
+            //'join_question' => (json_decode($interestCircle['join_question'], true)) ?? [],
             'is_join' => $this->isJoin($this->uid, $interestCircle['id']),
-            'answer_error_count' => intval(Redis::get('circle_error_count_'.$this->uid))
+            //'answer_error_count' => intval(Redis::get('circle_error_count_'.$this->uid))
         ];
     }
 

+ 35 - 0
app/Transformers/Circle/QuestionTransformer.php

@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/6
+ * Time: 14:08
+ */
+
+namespace App\Transformers\Circle;
+
+use App\Models\InterestCircle;
+use App\Models\InterestCircleUser;
+use Illuminate\Support\Facades\Redis;
+use League\Fractal\TransformerAbstract;
+
+class QuestionTransformer extends TransformerAbstract
+{
+
+    public function __construct($uid)
+    {
+        $this->uid = $uid;
+    }
+
+    public function transform(InterestCircle $interestCircle)
+    {
+        return [
+            'id' => $interestCircle['id'],
+            'join_limit' => $interestCircle['join_limit'],
+            'limit_condition' => $interestCircle['limit_condition'],
+            'join_question' => (json_decode($interestCircle['join_question'], true)) ?? [],
+            'answer_error_count' => intval(Redis::get('circle_error_count_'.$this->uid))
+        ];
+    }
+}

+ 2 - 0
routes/api.php

@@ -74,6 +74,8 @@ $api->version('v1', [
     //圈子相关
     //圈子首页
     $api->get('circle', 'CircleController@index');
+    //圈子问题
+    $api->get('circle/question', 'CircleController@getQuestion');
     //登录+验签
     $api->group(['middleware' => ['chxq_jwt_auth','chxq_sign']], function ($api) {
         //发布内容