wzq 5 éve
szülő
commit
559deb8f41

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

@@ -11,6 +11,7 @@ namespace App\Http\Controllers\V1;
 use App\Models\Post;
 use App\Repositories\PostRepositories;
 use App\Traits\CmsTrait;
+use App\Traits\FollowStatusTrait;
 use App\Traits\UserTrait;
 use App\Transformers\Post\CommentTransformer;
 use App\Transformers\Post\DetailTransformer;
@@ -36,6 +37,7 @@ class PostController extends Controller
 {
     use UserTrait;
     use CmsTrait;
+    use FollowStatusTrait;
 
     public function __construct(PostRepositories $postRepositories)
     {
@@ -203,21 +205,31 @@ class PostController extends Controller
                                 'data' => $bannerData,
                             ];
                         } elseif ($floor[$key + 1]['show_type'] == 'user') {
-                            $uidArray = array_column($floor[$key + 1]['data'], 'uid');
-                            $followMembersStatus = $this->getFollowMembersStatus(implode(',', $uidArray));
-                            if ($followMembersStatus) {
-                                $userData = [];
-                                foreach ($floor[$key + 1]['data'] as $item) {
-                                    if (!isset($followMembersStatus[$item['uid']])) continue;
-                                    $userData[] = array_merge($item, ['follow_status' => $followMembersStatus[$item['uid']]['follow_status']]);
-                                }
-                                if ($userData) {
-                                    $newData[] = [
-                                        'show_type' => 'user',
-                                        'data' => $userData,
-                                    ];
-                                }
+                            $userData = [];
+                            foreach ($floor[$key + 1]['data'] as $item) {
+                                $userData[] = array_merge($item, ['follow_status' => $this->followStatus($userInfo['uid'], $item['uid'])]);
+                            }
+                            if ($userData) {
+                                $newData[] = [
+                                    'show_type' => 'user',
+                                    'data' => $userData,
+                                ];
                             }
+//                            $uidArray = array_column($floor[$key + 1]['data'], 'uid');
+//                            $followMembersStatus = $this->getFollowMembersStatus(implode(',', $uidArray));
+//                            if ($followMembersStatus) {
+//                                $userData = [];
+//                                foreach ($floor[$key + 1]['data'] as $item) {
+//                                    if (!isset($followMembersStatus[$item['uid']])) continue;
+//                                    $userData[] = array_merge($item, ['follow_status' => $followMembersStatus[$item['uid']]['follow_status']]);
+//                                }
+//                                if ($userData) {
+//                                    $newData[] = [
+//                                        'show_type' => 'user',
+//                                        'data' => $userData,
+//                                    ];
+//                                }
+//                            }
                         } elseif ($floor[$key + 1]['show_type'] == 'video') {
                             $newData[] = [
                                 'show_type' => 'video',

+ 27 - 0
app/Traits/FollowStatusTrait.php

@@ -0,0 +1,27 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/7/3
+ * Time: 18:05
+ */
+namespace App\Traits;
+
+use Illuminate\Support\Facades\Redis;
+
+trait FollowStatusTrait
+{
+
+    //获取关注状态
+    public function followStatus($uid, $followUid)
+    {
+        $status = 0;
+        if(Redis::ZSCORE('follow:'.$uid, $followUid)){
+            $status = 1;
+            if(Redis::ZSCORE('fans:'.$followUid, $uid)){
+                $status = 2;
+            }
+        }
+        return $status;
+    }
+}

+ 9 - 7
app/Transformers/Post/SuggestTransformer.php

@@ -13,13 +13,15 @@ use App\Models\PostCollect;
 use App\Models\PostComment;
 use App\Models\PostDislike;
 use App\Models\PostLike;
+use App\Traits\FollowStatusTrait;
 use App\Traits\UserTrait;
 use Carbon\Carbon;
 use League\Fractal\TransformerAbstract;
 
 class SuggestTransformer extends TransformerAbstract
 {
-    use UserTrait;
+//    use UserTrait;
+    use FollowStatusTrait;
     public function __construct($uid, $invite_code)
     {
         $this->uid = $uid;
@@ -47,11 +49,11 @@ class SuggestTransformer extends TransformerAbstract
                 'name' => $val
             ];
         }
-        $isFollow = 0;
-        $followStatus = $this->getFollowStatus($this->uid, $post['uid']);
-        if($followStatus){
-            $isFollow = $followStatus;
-        }
+//        $isFollow = 0;
+//        $followStatus = $this->getFollowStatus($this->uid, $post['uid']);
+//        if($followStatus){
+//            $isFollow = $followStatus;
+//        }
         return [
             'show_type' => 'post',
             'id' => $post['id'],
@@ -76,7 +78,7 @@ class SuggestTransformer extends TransformerAbstract
             'is_dislike' => PostDislike::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0,
             'is_collect' => PostCollect::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0,
             'comment' => $comment,
-            'is_follow' => $isFollow,
+            'is_follow' => $this->followStatus($this->uid, $post['uid']),
             'h5url' => config('customer.share_post_h5url')."?post_id={$post['id']}&invite_code={$this->invite_code}",
             'desc_url' => $post['type'] == 'html'?config('customer.app_service_url').'/community/fragment/detail/'.$post['id']:'',
         ];