Browse Source

Merge remote-tracking branch 'origin/develop' into develop

wzq 5 years ago
parent
commit
dd903d9695

+ 30 - 9
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;
@@ -85,7 +86,7 @@ class PostController extends Controller
      */
     public function index(Request $request)
     {
-        Log::debug('内容搜索'.json_encode($request));
+        Log::debug('内容搜索' . json_encode($request));
         $userInfo = $this->getUserInfo();
         if (empty($userInfo)) {
             return jsonError('获取用户信息失败');
@@ -134,9 +135,9 @@ class PostController extends Controller
             return jsonError('获取用户信息失败');
         }
         $param = $request->all();
-        if(isset($param['uid'])){
+        if (isset($param['uid'])) {
             $uid = $param['uid'];
-        }else{
+        } else {
             $uid = $userInfo['uid'];
         }
 
@@ -186,15 +187,15 @@ class PostController extends Controller
                     if (isset($floor[$key + 1])) {
                         if ($floor[$key + 1]['show_type'] == 'banner') {
                             $bannerData = [];
-                            foreach($floor[$key + 1]['data'] as $item){
-                                if($item['type'] == 1){
+                            foreach ($floor[$key + 1]['data'] as $item) {
+                                if ($item['type'] == 1) {
                                     $postType = Post::where('id', $item['link_content_id'])->value('type');
-                                    if(!$postType){
-                                        Log::info('banner类型为内容,未找到内容,被丢弃'.json_encode($item));
+                                    if (!$postType) {
+                                        Log::info('banner类型为内容,未找到内容,被丢弃' . json_encode($item));
                                         continue;
                                     }
                                     $bannerData[] = array_merge($item, ['post_type' => $postType]);
-                                }else{
+                                } else {
                                     $bannerData[] = $item;
                                 }
                             }
@@ -418,8 +419,28 @@ class PostController extends Controller
         if ($validator->fails()) {
             return jsonError($validator->errors()->first());
         }
-
         return $this->postRepositories->delete($request->all());
     }
 
+    /**
+     * 查询帖子内容详情(内部接口使用)
+     */
+    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);
+    }
+
 }

+ 18 - 12
app/Repositories/BehaviorRecordRepositories.php

@@ -17,6 +17,7 @@ use App\Models\ReleaseRecord;
 use Illuminate\Database\QueryException;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
+use Illuminate\Support\Facades\Redis;
 
 class BehaviorRecordRepositories
 {
@@ -99,18 +100,18 @@ class BehaviorRecordRepositories
             $data['quantity_issued'] = $register['quantity_issued'];
             $this->registeredAccountsRecord->create($data);
             //修改行为统计数据
-            $behavior = Behavior::where('virus_behavior_id',$register['virus_behavior_id'])->first();
+            $behavior = Behavior::where('virus_behavior_id', $register['virus_behavior_id'])->first();
             $behavior->grant_rainbow_beans += intval($register['quantity_issued']);
             $behavior->trigger_times += 1;
             $behavior->absolute_progression += intval($register['absolute_progression']);
-            if($register['trigger_type']){
+            if ($register['trigger_type']) {
                 $behavior->effective_trigger += 1;
             }
             $behavior->save();
             DB::commit();
             return true;
         } catch (QueryException $exception) {
-            Log::debug('记录账本-注册-exception:'.$exception->getMessage());
+            Log::debug('记录账本-注册-exception:' . $exception->getMessage());
             DB::rollBack();
             return false;
         }
@@ -136,17 +137,17 @@ class BehaviorRecordRepositories
             $data['generation_quantity'] = $release['generation_quantity'];
             $data['quantity_issued'] = $release['quantity_issued'];
             $this->releaseRecord->create($data);
-            $behavior = Behavior::where('virus_behavior_id',$release['virus_behavior_id'])->first();
+            $behavior = Behavior::where('virus_behavior_id', $release['virus_behavior_id'])->first();
             $behavior->grant_rainbow_beans += intval($release['quantity_issued']);
             $behavior->trigger_times += 1;
-            if($release['trigger_type']){
+            if ($release['trigger_type']) {
                 $behavior->effective_trigger += 1;
             }
             $behavior->save();
             DB::commit();
             return true;
         } catch (QueryException $exception) {
-            Log::debug('记录账本-发布-exception:'.$exception->getMessage());
+            Log::debug('记录账本-发布-exception:' . $exception->getMessage());
             DB::rollBack();
             return false;
         }
@@ -173,17 +174,22 @@ class BehaviorRecordRepositories
             $data['quantity_issued'] = $general['quantity_issued'];
             $data['behavior_value'] = $general['behavior_value'];
             $this->generalLedgerRecord->create($data);
-            $behavior = Behavior::where('virus_behavior_id',$general['virus_behavior_id'])->first();
+            $behavior = Behavior::where('virus_behavior_id', $general['virus_behavior_id'])->first();
             $behavior->grant_rainbow_beans += intval($general['quantity_issued']);
             $behavior->trigger_times += 1;
-            if($general['trigger_type']){
+            if ($general['trigger_type']) {
                 $behavior->effective_trigger += 1;
             }
             $behavior->save();
             DB::commit();
+            //统计用户所有动态当天被阅读数
+            if ('read' == $general['behavior_flag']) {
+                $key = "user_visited_count" . date('Y-m-d');
+                Redis::zincrby($key, 1, $data['content_author_id']);
+            }
             return true;
         } catch (QueryException $exception) {
-            Log::debug('记录账本-普通行为-exception:'.$exception->getMessage());
+            Log::debug('记录账本-普通行为-exception:' . $exception->getMessage());
             DB::rollBack();
             return false;
         }
@@ -212,17 +218,17 @@ class BehaviorRecordRepositories
             $data['current_comment_id'] = $comment['current_comment_id'];
             $data['superior_comment_id'] = $comment['superior_comment_id'];
             $this->commentAccountRecord->create($data);
-            $behavior = Behavior::where('virus_behavior_id',$comment['virus_behavior_id'])->first();
+            $behavior = Behavior::where('virus_behavior_id', $comment['virus_behavior_id'])->first();
             $behavior->grant_rainbow_beans += intval($comment['quantity_issued']);
             $behavior->trigger_times += 1;
-            if($comment['trigger_type']){
+            if ($comment['trigger_type']) {
                 $behavior->effective_trigger += 1;
             }
             $behavior->save();
             DB::commit();
             return true;
         } catch (QueryException $exception) {
-            Log::debug('记录账本-评论-exception:'.$exception->getMessage());
+            Log::debug('记录账本-评论-exception:' . $exception->getMessage());
             DB::rollBack();
             return false;
         }

+ 1 - 1
app/Repositories/FeedRepositories.php

@@ -142,7 +142,7 @@ class FeedRepositories
                     if($user){
                         Log::debug("测试feed关注状态:uid{$userInfo['uid']}followUid{$value['relate_id']}");
                         $value['relate_data'] = [
-                            'uid' => $user['uid'],
+                            'uid' => intval($user['uid']),
                             'username' => subtext($user['username'],10),
                             'avatar' => $user['avatar'],
                             'follow_status' => $this->getFollowStatus($userInfo['uid'],$value['relate_id']),

+ 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,
+        ];
+    }
+}

+ 5 - 0
routes/api.php

@@ -16,12 +16,17 @@ $api = app('Dingo\Api\Routing\Router');
 $api->version('v1', [
     'namespace' => 'App\Http\Controllers\V1',
 ], function ($api) {
+
     //根据行为标识查询行为
     $api->get('getBehaviorByIdentify', 'BehaviorController@getBehaviorByIdentify');
     $api->get('getVodUploadAuth', 'AliYunVodController@getVodUploadAuth');
     $api->get('getPlayUrlByVideoId', 'AliYunVodController@getPlayUrlByVideoId');
     //获取所有行为
     $api->get('getAllBehavior', 'BehaviorController@getAllBehavior');
+    $api->group(['middleware' => ['chxq_sign']], function ($api) {
+        //查询帖子内容详情
+        $api->get('post/info', 'PostController@find');
+    });
     //登录
     $api->group(['middleware' => ['chxq_jwt_auth']], function ($api) {
         //内容详情