xielin vor 5 Jahren
Ursprung
Commit
514e28ec30

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

@@ -16,6 +16,7 @@ use App\Transformers\Post\CommentTransformer;
 use App\Transformers\Post\DetailTransformer;
 use App\Transformers\Post\ListTransformer;
 use App\Transformers\Post\MyTransformer;
+use App\Transformers\Post\PostTransformer;
 use App\Transformers\Post\ReplyTransformer;
 use App\Transformers\Post\SuggestTransformer;
 use App\Transformers\Post\VideoTransformer;
@@ -407,4 +408,26 @@ class PostController extends Controller
         return $this->postRepositories->memberPostStatistics($request['uid']);
     }
 
+    /**
+     * 查询帖子内容详情(内部接口使用)
+     */
+    public function find(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return jsonError($validator->errors()->first());
+        }
+        $detail = $this->postRepositories->detail($request['id']);
+        if (!$detail) {
+            return jsonError('获取内容信息失败');
+        }
+        $fractal = new Manager();
+        $res = new Item($detail, new PostTransformer());
+        $data = $fractal->createData($res)->toArray();
+
+        return jsonSuccess($data);
+    }
+
 }

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

@@ -0,0 +1,60 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/17
+ * Time: 16:11
+ */
+namespace  App\Transformers\Post;
+
+use App\Models\Post;
+use App\Models\PostCollect;
+use App\Models\PostComment;
+use App\Models\PostDislike;
+use App\Models\PostLike;
+use App\Traits\UserTrait;
+use Carbon\Carbon;
+use League\Fractal\TransformerAbstract;
+
+class PostTransformer extends TransformerAbstract
+{
+    public function __construct()
+    {
+    }
+    public function transform(Post $post)
+    {
+        $imgs = [];
+        foreach($post->imgs as $img){
+            $imgs[] = $img['img'];
+        }
+
+        $topic = [];
+        foreach($post->topic() as $key => $val){
+            $topic[] = [
+                'id' => $key,
+                'name' => $val
+            ];
+        }
+        return [
+            'id' => $post['id'],
+            'type' => $post['type'],
+            'created_at' => $post['created_at'],
+            'uid' => $post['uid'],
+            'username' => $post['username'],
+            'avatar' => $post['avatar'],
+            'topic' => $topic,
+            'title' => $post['title'],
+            'content' => $post['content'],
+            'location' => $post['location'],
+            'img' => $post['img'],
+            'imgs' => $imgs,
+            'video' => $post['video'],
+            'pv' => $post->data->pv,
+            'praise_count' => $post->data->praise_count,
+            'collect_count' => $post->data->collect_count,
+            'comment_count' => $post->data->comment_count,
+            'available_bean' => $post->data->available_bean,
+            'will_collect_bean' => $post->data->will_collect_bean + 3 * $post->data->pv,
+        ];
+    }
+}

+ 2 - 0
routes/api.php

@@ -16,6 +16,8 @@ $api = app('Dingo\Api\Routing\Router');
 $api->version('v1', [
     'namespace' => 'App\Http\Controllers\V1',
 ], function ($api) {
+    //查询帖子内容详情
+    $api->get('post/info', 'PostController@find');
     //根据行为标识查询行为
     $api->get('getBehaviorByIdentify', 'BehaviorController@getBehaviorByIdentify');
     $api->get('getVodUploadAuth', 'AliYunVodController@getVodUploadAuth');