Bladeren bron

Merge branch 'develop' of http://git.caihongxingqiu.net/rainbow/community-service into develop

xielin 5 jaren geleden
bovenliggende
commit
be59ffda44

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

@@ -13,10 +13,12 @@ use App\Traits\UserTrait;
 use App\Transformers\Post\CommentTransformer;
 use App\Transformers\Post\CommentTransformer;
 use App\Transformers\Post\DetailTransformer;
 use App\Transformers\Post\DetailTransformer;
 use App\Transformers\Post\ListTransformer;
 use App\Transformers\Post\ListTransformer;
+use App\Transformers\Post\MyTransformer;
 use App\Transformers\Post\ReplyTransformer;
 use App\Transformers\Post\ReplyTransformer;
 use App\Transformers\Post\SuggestTransformer;
 use App\Transformers\Post\SuggestTransformer;
 use App\Transformers\Post\VideoTransformer;
 use App\Transformers\Post\VideoTransformer;
 use App\Transformers\Topic\TopicDetailTransformer;
 use App\Transformers\Topic\TopicDetailTransformer;
+use App\Transformers\Topic\TopicListTransformer;
 use App\Transformers\Topic\TopicPostTransformer;
 use App\Transformers\Topic\TopicPostTransformer;
 use Illuminate\Http\Request;
 use Illuminate\Http\Request;
 use Illuminate\Support\Carbon;
 use Illuminate\Support\Carbon;
@@ -112,6 +114,32 @@ class PostController extends Controller
         return jsonSuccess($data);
         return jsonSuccess($data);
     }
     }
 
 
+    /**
+     * 个人中心内容
+     */
+    public function myPost(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'type' => ['required',Rule::in('create', 'collect', 'share')],
+        ]);
+        if ($validator->fails()) {
+            return jsonError($validator->errors()->first());
+        }
+
+        $userInfo = $this->getUserInfo();
+        if(empty($userInfo)){
+            Log::info('获取用户信息失败');
+            return jsonError('获取用户信息失败');
+        }
+        $list = $this->postRepositories->myPost($request['type'], $userInfo['uid']);
+        $fractal = new Manager();
+        $resource = new Collection($list, new MyTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($list));
+        $data = $fractal->createData($resource)->toArray();
+
+        return jsonSuccess($data);
+    }
+
     /**
     /**
      * 推荐内容列表
      * 推荐内容列表
      */
      */
@@ -210,6 +238,20 @@ class PostController extends Controller
         return jsonSuccess($data);
         return jsonSuccess($data);
     }
     }
 
 
+    /**
+     * 话题列表
+     */
+    public function topicList(Request $request)
+    {
+        $list = $this->postRepositories->topicList($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($list, new TopicListTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($list));
+        $data = $fractal->createData($resource)->toArray();
+
+        return jsonSuccess($data);
+    }
+
 
 
     /**
     /**
      * 话题详情
      * 话题详情

+ 56 - 0
app/Repositories/PostRepositories.php

@@ -36,6 +36,8 @@ class PostRepositories
                                 PostData $postData,
                                 PostData $postData,
                                 PostImgs $postImgs,
                                 PostImgs $postImgs,
                                 PostComment $postComment,
                                 PostComment $postComment,
+                                PostCollect $postCollect,
+                                PostShare $postShare,
                                 DetectionService $detectionService,
                                 DetectionService $detectionService,
                                 RabbitMqUtil $rabbitMqUtil,
                                 RabbitMqUtil $rabbitMqUtil,
                                 Topic $topic)
                                 Topic $topic)
@@ -44,6 +46,8 @@ class PostRepositories
         $this->postData = $postData;
         $this->postData = $postData;
         $this->postImgs = $postImgs;
         $this->postImgs = $postImgs;
         $this->postComment = $postComment;
         $this->postComment = $postComment;
+        $this->postCollect = $postCollect;
+        $this->postShare = $postShare;
         $this->detectionService = $detectionService;
         $this->detectionService = $detectionService;
         $this->rabbitMqUtil = $rabbitMqUtil;
         $this->rabbitMqUtil = $rabbitMqUtil;
         $this->topic = $topic;
         $this->topic = $topic;
@@ -322,6 +326,35 @@ class PostRepositories
             ->paginate($perPage);
             ->paginate($perPage);
     }
     }
 
 
+    /**
+     * 个人中心内容列表
+     */
+    public function MyPost($type, $uid)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+
+        $where = [];
+        if($type == 'create'){
+            $where[] = ['post.uid', $uid];
+            $post = $this->post;
+            $order = 'post.id';
+        }elseif($type == 'collect'){
+            $post = $this->post->join('post_collect', 'post_collect.post_id', '=', 'post.id');
+            $where[] = ['post_collect.uid', $uid];
+            $order = 'post_collect.id';
+        }else{
+            $post = $this->post->join('post_share', 'post_share.post_id', '=', 'post.id');
+            $where[] = ['post_share.uid', $uid];
+            $order = 'post_share.updated_at';
+        }
+        return $post
+            ->join('post_data', 'post_data.post_id', '=', 'post.id')
+            ->select('post.*')
+            ->where($where)
+            ->orderBy($order,'desc')
+            ->paginate($perPage);
+    }
+
     /**
     /**
      * 内容详情
      * 内容详情
      */
      */
@@ -390,6 +423,29 @@ class PostRepositories
             ->paginate($perPage);
             ->paginate($perPage);
     }
     }
 
 
+    /**
+     * 话题列表
+     */
+    public function topicList($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+
+        $where = [];
+        if(isset($request['category_id'])){
+           $topic = $this->topic->join('category_topic', 'category_topic.topic_id', '=', 'topic.id')->select('topic.*');
+           $where[] = ['category_topic.category_id', $request['category_id']];
+        }else{
+            $topic = $this->topic;
+        }
+        if(isset($request['is_suggest'])){
+            $where[] = ['topic.is_suggest', $request['is_suggest']];
+        }
+        return $topic
+            ->where($where)
+            ->orderBy('id','desc')
+            ->paginate($perPage);
+    }
+
 
 
     /**
     /**
      * 更新帖子统计数量
      * 更新帖子统计数量

+ 1 - 1
app/Traits/UserTrait.php

@@ -31,7 +31,7 @@ trait UserTrait
             $sign = generateSign([], config('customer.app_secret'));
             $sign = generateSign([], config('customer.app_secret'));
             $url = config("customer.app_service_url").'/user/v2/follow/checkStatus';
             $url = config("customer.app_service_url").'/user/v2/follow/checkStatus';
             $array = [
             $array = [
-                'json' => ['sign' => $sign, 'uid' => $uid, 'follow_uid' => $followUid], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+                'json' => ['sign' => $sign, 'uid' => $followUid, 'follow_uid' => $uid], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
             ];
             ];
             return http($url,$array,'get');
             return http($url,$array,'get');
         } catch (\Exception $e) {
         } catch (\Exception $e) {

+ 24 - 0
app/Transformers/Post/MyTransformer.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/18
+ * Time: 10:44
+ */
+namespace  App\Transformers\Post;
+
+use App\Models\Post;
+use League\Fractal\TransformerAbstract;
+
+class MyTransformer extends TransformerAbstract
+{
+    public function transform(Post $post)
+    {
+        return [
+            'id' => $post['id'],
+            'img' => $post['img'],
+            'create_bean' => $post->data->create_bean,
+            'collect_bean' => $post->data->collect_bean,
+        ];
+    }
+}

+ 24 - 0
app/Transformers/Topic/TopicListTransformer.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/18
+ * Time: 13:57
+ */
+namespace  App\Transformers\Topic;
+
+use App\Models\Topic;
+use Carbon\Carbon;
+use League\Fractal\TransformerAbstract;
+
+class TopicListTransformer extends TransformerAbstract
+{
+    public function transform(Topic $topic)
+    {
+        return [
+            'id' => $topic['id'],
+            'name' => $topic['name'],
+            'follow_count' => $topic->follow->count() + 9876,
+        ];
+    }
+}

+ 4 - 0
routes/api.php

@@ -22,6 +22,8 @@ $api->version('v1', [
     $api->group(['middleware' => ['chxq_jwt_auth']], function ($api) {
     $api->group(['middleware' => ['chxq_jwt_auth']], function ($api) {
         //发布内容
         //发布内容
         $api->post('post', 'PostController@create');
         $api->post('post', 'PostController@create');
+        //个人中心内容
+        $api->get('post/my', 'PostController@myPost');
         //内容列表
         //内容列表
         $api->get('post', 'PostController@index');
         $api->get('post', 'PostController@index');
         //视频列表
         //视频列表
@@ -42,6 +44,8 @@ $api->version('v1', [
         $api->get('topicCategory/getTopics', 'CategoryController@getTopics');
         $api->get('topicCategory/getTopics', 'CategoryController@getTopics');
         //话题内容列表
         //话题内容列表
         $api->get('post/topic', 'PostController@topicPost');
         $api->get('post/topic', 'PostController@topicPost');
+        //话题列表
+        $api->get('topic', 'PostController@topicList');
         //话题详情
         //话题详情
         $api->get('topic/detail', 'PostController@topicDetail');
         $api->get('topic/detail', 'PostController@topicDetail');
         //关注推荐话题
         //关注推荐话题