瀏覽代碼

删除评论

wzq 5 年之前
父節點
當前提交
b3613d7ead

+ 14 - 0
app/Http/Controllers/V1/PostController.php

@@ -82,6 +82,20 @@ class PostController extends Controller
         return $this->postRepositories->comment($request->all());
     }
 
+    /**
+     * 删除评论
+     */
+    public function commentDelete(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return jsonError($validator->errors()->first());
+        }
+        return  $this->postRepositories->commentDelete($request->all());
+    }
+
     /**
      * 内容列表
      */

+ 38 - 0
app/Repositories/PostRepositories.php

@@ -288,6 +288,44 @@ class PostRepositories
         }
     }
 
+    /**
+     * 删除评论
+     */
+    public function commentDelete($request)
+    {
+        $userInfo = $this->getUserInfo();
+        if (empty($userInfo)) {
+            return jsonError('获取用户信息失败');
+        }
+        $comment = $this->postComment->find($request['id']);
+        if (!$comment) {
+            return jsonError('获取评论信息失败');
+        }
+
+        if($userInfo['uid'] != $comment->uid){
+            return jsonError('只能删除自己的评论');
+        }
+
+        if ($comment->is_delete == 1) {
+            return jsonError('该评论已经删除');
+        }
+
+        DB::beginTransaction();
+        try {
+            $comment->is_delete = 1;
+            $comment->save();
+
+            DB::commit();
+            Redis::SADD('delete_post_comment_ids', $comment->id);
+            return jsonSuccess('删除评论成功');
+
+        } catch (QueryException $exception) {
+            DB::rollBack();
+            Log::debug('删除评论:' . $request['id'] . $exception->getMessage());
+            return jsonError('删除评论失败');
+        }
+    }
+
     /**
      * 内容列表
      */

+ 2 - 0
app/Transformers/Post/CommentTransformer.php

@@ -33,6 +33,7 @@ class CommentTransformer extends TransformerAbstract
                 'reply_username' => $replyUsername,
                 'content' => $val->is_delete?'该评论已被删除':$val->content,
                 'created_at' => Carbon::parse($val->created_at)->diffForHumans(),
+                'is_delete' => $val->is_delete,
             ];
         }
         $user = $this->userInfo($postComment['uid']);
@@ -45,6 +46,7 @@ class CommentTransformer extends TransformerAbstract
             'created_at' => Carbon::parse($postComment['created_at'])->diffForHumans(),
             'reply_count' => $postComment->reply->count(),
             'reply' => $reply,
+            'is_delete' => $postComment['is_delete'],
         ];
     }
 }

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

@@ -31,6 +31,7 @@ class ReplyTransformer extends TransformerAbstract
             'avatar' => $user['avatar'],
             'content' => $postComment['is_delete']?'该回复已被删除':$postComment['content'],
             'created_at' => Carbon::parse($postComment['created_at'])->diffForHumans(),
+            'is_delete' => $postComment['is_delete'],
         ];
     }
 }

+ 2 - 0
routes/api.php

@@ -73,6 +73,8 @@ $api->version('v1', [
         $api->get('post/my', 'PostController@myPost');
         //评价&回复
         $api->post('post/comment', 'PostController@comment');
+        //评价&回复删除
+        $api->delete('post/comment', 'PostController@commentDelete');
         //话题分类
         $api->get('topicCategory', 'CategoryController@index');
         //获取话题