xielin 5 年之前
父节点
当前提交
d68aa986a3
共有 3 个文件被更改,包括 41 次插入3 次删除
  1. 36 2
      app/Http/Controllers/V1/CircleController.php
  2. 1 1
      app/Transformers/Topic/TopicDetailTransformer.php
  3. 4 0
      routes/api.php

+ 36 - 2
app/Http/Controllers/V1/CircleController.php

@@ -43,8 +43,41 @@ class CircleController extends Controller
         $this->circleMessageRepository = $circleMessageRepository;
     }
 
-    public function valid(Request $request){
+    /**
+     * 圈子检测
+     * @param Request $request
+     * @return array
+     */
+    public function valid(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());
+        }
+        $request = $request->all();
+        $circleInfo = $this->circleRepository->detail($request);
+        if ($circleInfo && $circleInfo->is_open == 0) {
+            return $this->jsonError('当前圈子已关闭');
+        }
+        if ($uid) {
+            $row = $this->circleMemberRepository
+                ->where('circle_id', $request['id'])
+                ->where('uid', $uid)
+                ->where('is_black', 1)->exists();
+            if ($row) {
+                return $this->jsonError('您无法进入该聊天室');
+            }
+        }
 
+        return $this->jsonSuccess();
     }
 
     /**
@@ -202,7 +235,8 @@ class CircleController extends Controller
         return jsonSuccess($data);
     }
 
-    public function messageList(Request $request){
+    public function messageList(Request $request)
+    {
         $validator = Validator::make($request->all(), [
             'id' => 'required|exists:interest_circles'
         ]);

+ 1 - 1
app/Transformers/Topic/TopicDetailTransformer.php

@@ -41,7 +41,7 @@ class TopicDetailTransformer extends TransformerAbstract
     {
         $circleInfo = InterestCircle::find($circleId);
         if ($circleInfo) {
-            $circle['id'] = $circleInfo->room_id;
+            $circle['id'] = $circleInfo->id;
             $circle['name'] = $circleInfo->name;
         } else {
             $circle = new \stdClass();

+ 4 - 0
routes/api.php

@@ -72,12 +72,16 @@ $api->version('v1', [
     $api->get('post/checkImage', 'PostController@checkImage');
 
     //圈子相关
+
+    //圈子检测
+    $api->get('circle/valid', 'CircleController@valid');
     //圈子首页
     $api->get('circle', 'CircleController@index');
     //圈子问题
     $api->get('circle/question', 'CircleController@getQuestion');
     //圈子精华文章列表
     $api->get('circle/articles', 'CircleController@articleList');
+
     //登录+验签
     $api->group(['middleware' => ['chxq_jwt_auth','chxq_sign']], function ($api) {
         //发布内容