瀏覽代碼

Merge branch 'develop'

xielin 5 年之前
父節點
當前提交
bfb098bbdd

+ 33 - 2
app/Http/Controllers/Post/PostController.php

@@ -62,7 +62,8 @@ class PostController extends Controller
                 'comment_count',
                 'collect_count',
                 'create_bean',
-                'is_suggest'
+                'is_suggest',
+                'is_hide',
             ]
         ];
         return $data;
@@ -106,7 +107,7 @@ class PostController extends Controller
             'video' => 'required_if:type,video|string|url',
             'topic_ids' => 'required|string|max:64',
             'title' => 'nullable|string|max:20',
-            'content' => 'required|string|max:20',
+            'content' => 'required|string|max:1000',
             'location' => 'required|string',
             'imgs' => 'required_if:type,image|array|max:9',
             'imgs.*' => 'required|url',
@@ -117,6 +118,22 @@ class PostController extends Controller
         return  $this->postRepository->create($request->all());
     }
 
+    /**
+     * 评论&回复
+     */
+    public function comment(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'post_id' => 'required|integer',
+            'uid' => 'required|integer',
+            'content' => 'required|string|max:150',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->postRepository->comment($request->all());
+    }
+
     /**
      * 推荐内容
      */
@@ -145,6 +162,20 @@ class PostController extends Controller
         return  $this->postRepository->delete($request->all());
     }
 
+    /**
+     * 删除评论
+     */
+    public function commentDelete(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->postRepository->commentDelete($request->all());
+    }
+
     /**
      * 隐藏内容
      */

+ 99 - 0
app/Repositories/Post/PostRepository.php

@@ -132,6 +132,66 @@ class PostRepository
         }
     }
 
+    /**
+     * 评论&回复
+     */
+    public function comment($request)
+    {
+        //验证小号
+
+        $post = $this->post->find($request['post_id']);
+        if(!$post){
+            return Response::create([
+                'message'  => '获取内容失败',
+                'status_code'   => 500
+            ]);
+        }
+        $data = [
+            'uid' => $request['uid'],
+            'post_id' => $request['post_id'],
+            'parent_id' => 0,
+            'username' => '暂无',
+            'avatar' => '暂无',
+            'content' => $request['content'],
+            'is_delete' => 0,
+        ];
+        if(isset($request['parent_id']) && $request['parent_id'] != 0){
+            $comment = $this->postComment->find($request['parent_id']);
+            if(!$comment){
+                return Response::create([
+                    'message'  => '获取评论信息失败',
+                    'status_code'   => 500
+                ]);
+            }
+            if($comment->parent_id){
+                return Response::create([
+                    'message'  => '只能回复评论',
+                    'status_code'   => 500
+                ]);
+            }
+            $data['parent_id'] = $request['parent_id'];
+        }
+        DB::beginTransaction();
+        try{
+            $this->postComment->create($data);
+            $post->data->comment_count += 1;
+            $post->data->comment_real_count += 1;
+            $post->data->save();
+
+            DB::commit();
+            return Response::create();
+
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('评论内容:'.$request['post_id'].$exception->getMessage());
+            return Response::create([
+                'message'  => '评论失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
     /**
      * 内容列表
      */
@@ -283,6 +343,45 @@ class PostRepository
         }
     }
 
+    /**
+     * 删除评论
+     */
+    public function commentDelete($request)
+    {
+        $comment = $this->postComment->find($request['id']);
+        if(!$comment){
+            return Response::create([
+                'message'  => '获取评论信息失败',
+                'status_code'   => 500
+            ]);
+        }
+
+        if($comment->is_delete == 1){
+            return Response::create([
+                'message'  => '该评论已经删除',
+                'status_code'   => 500
+            ]);
+        }
+
+        DB::beginTransaction();
+        try{
+            $comment->is_delete = 1;
+            $comment->save();
+
+            DB::commit();
+            return Response::create();
+
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('删除评论:'.$request['id'].$exception->getMessage());
+            return Response::create([
+                'message'  => '操作失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
     /**
      * 隐藏内容
      */

+ 1 - 0
app/Transformers/Post/PostTransformer.php

@@ -32,6 +32,7 @@ class PostTransformer extends TransformerAbstract
             'collect_count' => $post->data->collect_real_count.'/'.$post->data->collect_count,
             'create_bean' => $post->data->create_bean,
             'is_suggest' => $post['is_suggest'],
+            'is_hide' => $post['is_hide'],
         ];
     }
 }

+ 5 - 0
routes/api.php

@@ -30,6 +30,11 @@ $api->version('v1', [
         //隐藏内容
         $api->put('post/hide', 'PostController@hide');
 
+        //评论&回复
+        $api->post('post/comment', 'PostController@comment');
+        //删除评论
+        $api->delete('post/comment/delete', 'PostController@commentDelete');
+
     });
 
     $api->group(['middleware' => 'jwt.chxq_auth'], function ($api) {