xielin 5 rokov pred
rodič
commit
53d678f1e2
1 zmenil súbory, kde vykonal 21 pridanie a 1 odobranie
  1. 21 1
      app/Repositories/PostRepositories.php

+ 21 - 1
app/Repositories/PostRepositories.php

@@ -554,7 +554,6 @@ class PostRepositories
     public function myTopicList($request)
     {
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
-
         $uid = 0;
         $user = $this->getUserInfo();
         if($user){
@@ -580,31 +579,45 @@ class PostRepositories
             Log::debug("非帖子类操作,不操作帖子统计数量".json_encode($request));
             return true;
         }
+        //帖子缓存信息key
+        $postInfoKey = "post_info_".$postId;
         $post = PostData::where('post_id', $postId)->first();
         if(!$post) return true;
         if (isset($request['behavior_flag']) && $request['behavior_flag'] == 'read') {
             $post->pv += 1;
             $post->pv_real += 1;
+            Redis::HINCRBY($postInfoKey,'pv',1);
             Log::debug("帖子:".$postId."被阅读,pv +1");
         } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'unlike') {
+            //用户不喜欢帖子key
+            $postUnLikeKey = "post_unlike_".$postId;
             $post->dislike_count += 1;
             PostDislike::create(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]);
+            Redis::sadd($postUnLikeKey,$request['target_id']);
+            Redis::HINCRBY($postInfoKey,'dislike_count',1);
             Log::debug("帖子:".$postId."被不喜欢,unlike +1");
         } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'like') {
+            //用户点赞帖子
+            $postLikeKey = "post_like_".$postId;
             if($request['behavior_value']){
                 $post->praise_count += 1;
                 $post->praise_real_count += 1;
                 PostLike::create(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]);
+                Redis::sadd($postLikeKey,$request['target_id']);
+                Redis::HINCRBY($postInfoKey,'praise_count',1);
                 Log::debug("帖子:".$postId."被点赞,praise_count +1");
             }else{
                 $post->praise_count -= 1;
                 $post->praise_real_count -= 1;
                 PostLike::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->delete();
+                Redis::srem($postLikeKey,$request['target_id']);
+                Redis::HINCRBY($postInfoKey,'praise_count',-1);
                 Log::debug("帖子:".$postId."被取消点赞,praise_count -1");
             }
         } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'forward') {
             $post->share_count += 1;
             $post->share_real_count += 1;
+            Redis::HINCRBY($postInfoKey,'share_count',1);
             $shareRow = PostShare::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->first();
             if($shareRow){
                 PostShare::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->update(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]);
@@ -614,17 +627,24 @@ class PostRepositories
             Log::debug("帖子:".$postId."被分享,share_count +1");
         } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'comment') {
             $post->comment_count += 1;
+            Redis::HINCRBY($postInfoKey,'comment_count',1);
             Log::debug("帖子:".$postId."被评论,comment_count +1");
         } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'collect') {
+            //用户收藏帖子
+            $postCollectKey = "post_collect_".$postId;
             if($request['behavior_value']) {
                 $post->collect_count += 1;
                 $post->collect_real_count += 1;
                 PostCollect::create(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]);
+                Redis::sadd($postCollectKey,$request['target_id']);
+                Redis::HINCRBY($postInfoKey,'collect_count',1);
                 Log::debug("帖子:".$postId."被收藏,collect_count +1");
             }else{
                 $post->collect_count -= 1;
                 $post->collect_real_count -= 1;
                 PostCollect::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->delete();
+                Redis::srem($postCollectKey,$request['target_id']);
+                Redis::HINCRBY($postInfoKey,'collect_count',-1);
                 Log::debug("帖子:".$postId."被取消收藏,collect_count -1");
             }
         }