소스 검색

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

xielin 5 년 전
부모
커밋
bd2c740de6

+ 10 - 9
app/Console/Commands/RankingList.php

@@ -5,6 +5,7 @@
  * Date: 2019/6/20
  * Time: 下午2:27
  */
+
 namespace App\Console\Commands;
 
 
@@ -57,13 +58,12 @@ class RankingList extends Command
     {
         $yesterday_start = Carbon::now()->addDays(-1)->startOfDay()->toDateTimeString();
         $yesterday_end = Carbon::now()->addDays(-1)->endOfDay()->toDateTimeString();
-        return  $model->select(DB::raw('count(*) as count'),'generation_quantity','content_author_id','related_content_id')
-            ->whereBetween('created_at', [$yesterday_start,$yesterday_end])
-            ->groupBy('generation_quantity','related_content_id','content_author_id')
-            ->orderBy('generation_quantity','desc')
+        return $model->select(DB::raw('count(*) as num'), 'generation_quantity', 'content_author_id', DB::raw('sum(generation_quantity) as count'))
+            ->whereBetween('created_at', [$yesterday_start, $yesterday_end])
+            ->groupBy('generation_quantity', 'content_author_id')
+            ->orderBy('count', 'desc')
             ->limit(10)
             ->get();
-
     }
 
     /**
@@ -89,22 +89,23 @@ class RankingList extends Command
         foreach ($comment_best_author as $k => $v) {
             $comment_best_author[$k]['type'] = 'comment';
         }
-        $general_author = $this->_condition($this->commentRecord);
+        $general_author = $this->_condition($this->generalRecord);
         $general_best_author = $general_author->toArray();
         foreach ($general_best_author as $k => $v) {
             $general_best_author[$k]['type'] = 'general';
         }
         $release_author = $this->releaseRecord
             ->whereBetween('created_at', [$yesterday_start, $yesterday_end])
-            ->select(DB::raw('count(*) as count'), 'generation_quantity', 'uid as content_author_id', 'related_content_id')
-            ->groupBy('generation_quantity', 'content_author_id', 'related_content_id')->orderBy('generation_quantity', 'desc')->limit(10)->get();
+            ->select(DB::raw('count(*) as num'), 'generation_quantity', 'uid as content_author_id', DB::raw('sum(generation_quantity) as count'))
+            ->groupBy('generation_quantity', 'content_author_id')->orderBy('count', 'desc')->limit(10)->get();
+
         $release_best_author = $release_author->toArray();
         foreach ($release_best_author as $k => $v) {
             $release_best_author[$k]['type'] = 'release';
         }
         $all_best_author = array_merge($comment_best_author, $general_best_author, $release_best_author);
 
-        $column = array_column($all_best_author, 'generation_quantity');
+        $column = array_column($all_best_author, 'count');
         array_multisort($column, SORT_DESC, $all_best_author);
 
         $all_best_author = array_slice($all_best_author, 0, 10);

+ 46 - 1
app/Helper/helper.php

@@ -124,8 +124,53 @@ function http($url, $param, $method = 'post')
 function subtext($text, $length)
 {
     if(mb_strlen($text, 'utf8') > $length) {
-        return mb_substr($text, 0, $length, 'utf8').'...';
+        return mb_substr($text, 0, $length - 1, 'utf8').'...';
     } else {
         return $text;
     }
 }
+
+function success($data = [], $msg = "成功")
+{
+    $response = array(
+        'code' => 0,
+        'msg' => $msg,
+        'data' => new stdClass()
+    );
+    if ($data) {
+        if (is_array($data)) {
+            //带有分页格式转换
+            if (isset($data['meta'])) {
+                // 更改元数据格式,全部包含在data下
+                $temp = array(
+                    'data' => array(
+                        'data' => $data['data'],
+                        'pagination' => $data['meta']['pagination']
+                    )
+                );
+                $response = array_merge($response, $temp);
+            } elseif(isset($data['data'])) {
+                $response = $data;
+            }else{
+                $temp = array(
+                    'data' => $data
+                );
+                $response = array_merge($response, $temp);
+            }
+        }
+    }
+    return $response;
+}
+//转换数字
+function getNumber($num) {
+    if ($num >= 100000000) {
+        $num = sprintf("%.2f", $num / 100000000) . '亿';
+    } elseif ($num >= 100000) {
+        $num = intval($num / 10000) . '万';
+    } elseif ($num >= 10000) {
+        $num = sprintf("%.1f", $num / 10000) . '万';
+    } else {
+        $num = strval($num);
+    }
+    return $num;
+}

+ 19 - 4
app/Http/Controllers/V1/BeanDetailController.php

@@ -21,15 +21,30 @@ class BeanDetailController extends Controller
     //排行榜
     public function rankingList(Request $request)
     {
-        $validator = Validator::make($request->all(), [
+        $data = $request->all();
+        $validator = Validator::make($data, [
             'type' => ['required',Rule::in([0,1, 2])],
         ]);
         if ($validator->fails()) {
             return $this->jsonError($validator->errors()->first());
         }
-        $top_most = $this->beanRepository->rankingList($request->all());
-        if ($top_most){
-            return $this->jsonSuccess($top_most);
+        $top_most = $this->beanRepository->rankingList($data);
+
+            return success(['list'=>$top_most]);
+    }
+
+    //分享/邀请首页
+    public function starDetail(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'invite_code' => 'required',
+        ]);
+        if ($validator->fails()) {
+            return $this->jsonError($validator->errors()->first());
+        }
+        $star_detail = $this->beanRepository->starDetail($request->all());
+        if ($star_detail){
+            return $this->jsonSuccess($star_detail);
         }else{
             return $this->jsonSuccess();
         }

+ 4 - 4
app/Http/Controllers/V1/PostController.php

@@ -90,7 +90,7 @@ class PostController extends Controller
         }
         $list = $this->postRepositories->lists($request->all());
         $fractal = new Manager();
-        $resource = new Collection($list, new ListTransformer($userInfo['uid']));
+        $resource = new Collection($list, new ListTransformer($userInfo['uid'], $userInfo['invite_code']));
         $resource->setPaginator(new IlluminatePaginatorAdapter($list));
         $data = $fractal->createData($resource)->toArray();
 
@@ -108,7 +108,7 @@ class PostController extends Controller
         }
         $list = $this->postRepositories->video($request->all());
         $fractal = new Manager();
-        $resource = new Collection($list, new VideoTransformer($userInfo['uid']));
+        $resource = new Collection($list, new VideoTransformer($userInfo['uid'], $userInfo['invite_code']));
         $resource->setPaginator(new IlluminatePaginatorAdapter($list));
         $data = $fractal->createData($resource)->toArray();
 
@@ -160,7 +160,7 @@ class PostController extends Controller
         $param = $request->all();
         $list = $this->postRepositories->suggestPost($param);
         $fractal = new Manager();
-        $resource = new Collection($list, new SuggestTransformer($userInfo['uid']));
+        $resource = new Collection($list, new SuggestTransformer($userInfo['uid'], $userInfo['invite_code']));
         $resource->setPaginator(new IlluminatePaginatorAdapter($list));
         $data = $fractal->createData($resource)->toArray();
 
@@ -342,7 +342,7 @@ class PostController extends Controller
         }
         $list = $this->postRepositories->topicPost($request->all());
         $fractal = new Manager();
-        $resource = new Collection($list, new TopicPostTransformer($userInfo['uid']));
+        $resource = new Collection($list, new TopicPostTransformer($userInfo['uid'], $userInfo['invite_code']));
         $resource->setPaginator(new IlluminatePaginatorAdapter($list));
         $data = $fractal->createData($resource)->toArray();
 

+ 106 - 15
app/Repositories/BeanRepository.php

@@ -1,13 +1,8 @@
 <?php
 namespace App\Repositories;
-use App\Models\Behavior;
-use App\Models\CommentRecord;
-use App\Models\GeneralRecord;
 use App\Models\Post;
-use App\Models\RegisteredRecord;
-use App\Models\ReleaseRecord;
 use Illuminate\Support\Carbon;
-use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Log;
 use Tymon\JWTAuth\Facades\JWTAuth;
 use Illuminate\Support\Facades\Redis;
@@ -59,7 +54,7 @@ class BeanRepository
                 foreach ($excellent_residents as $k=>$v){
                     if(!isset($author_data[$v['content_author_id']])) continue;
                     $excellent_residents[$k]['follow_status'] = $author_data[$v['content_author_id']]['follow_status'];
-                    $excellent_residents[$k]['username'] = $author_data[$v['content_author_id']]['username'];
+                    $excellent_residents[$k]['username'] = subtext($author_data[$v['content_author_id']]['username'], 5);
                     $excellent_residents[$k]['avatar'] = $author_data[$v['content_author_id']]['avatar'];
                 }
             }
@@ -88,7 +83,9 @@ class BeanRepository
                     foreach ($new_arr as $k => $v) {
                         if (!isset($user_data[$v['uid']])) continue;
                         $new_arr[$k]['follow_status'] = $user_data[$v['uid']]['follow_status'];
-                        $new_arr[$k]['username'] = $user_data[$v['uid']]['username'];
+                        $username = subtext($user_data[$v['uid']]['username'], 10);
+
+                        $new_arr[$k]['username'] = $username;
                         $new_arr[$k]['avatar'] = $user_data[$v['uid']]['avatar'];
                     }
                 }
@@ -105,8 +102,11 @@ class BeanRepository
                 if ($user_data){
                     foreach ($registered_most as $k=>$v){
                         if(!isset($user_data[$v['superior_uid']])) continue;
+                        $registered_most[$k]['count'] = intval($v['count']);
                         $registered_most[$k]['follow_status'] = $user_data[$v['superior_uid']]['follow_status'];
-                        $registered_most[$k]['username'] = $user_data[$v['superior_uid']]['username'];
+                        $username = subtext($user_data[$v['superior_uid']]['username'], 10);
+
+                        $registered_most[$k]['username'] = $username;
                         $registered_most[$k]['avatar'] = $user_data[$v['superior_uid']]['avatar'];
                     }
                 }
@@ -123,8 +123,11 @@ class BeanRepository
                 if ($user_data){
                     foreach ($all_best_author as $k=>$v){
                         if(!isset($user_data[$v['content_author_id']])) continue;
+                        $all_best_author[$k]['count'] = intval($v['count']);
                         $all_best_author[$k]['follow_status'] = $user_data[$v['content_author_id']]['follow_status'];
-                        $all_best_author[$k]['username'] = $user_data[$v['content_author_id']]['username'];
+                        $username = subtext($user_data[$v['content_author_id']]['username'], 10);
+
+                        $all_best_author[$k]['username'] = $username;
                         $all_best_author[$k]['avatar'] = $user_data[$v['content_author_id']]['avatar'];
                     }
                 }
@@ -153,13 +156,18 @@ class BeanRepository
     {
         $star_home = [];
         $user_bean = Redis::get('my_bean');
+        Log::debug($user_bean);
         $user_bean = json_decode($user_bean,true);
         $yesterday_quantity_issued = Redis::get('yesterday_quantity_issued');
-        $star_home['mybean']['user_all_bean'] = $user_bean['user_all_bean'] ?? 0;//用户总彩虹豆
-        $star_home['mybean']['yesterday_add_bean'] = $user_bean['yesterday_add_bean'] ?? 0;//昨日发放彩虹豆
-        $star_home['mybean']['user_count'] = $user_bean['user_count'] ?? 0;//已入驻居民
-        $star_home['mybean']['yesterday_add_user'] = $user_bean['yesterday_add_user'] ?? 0;//昨日新增居民
-        $star_home['mybean']['yesterday_quantity_issued'] = $yesterday_quantity_issued ?? 0;//昨日发放总彩虹豆
+        Log::debug($user_bean);
+        $token =  JWTAuth::decode(JWTAuth::getToken());
+        $uid = $token['user']->uid;
+        $my_bean = $this->get_user_bean($uid);
+        $star_home['mybean']['user_all_bean'] = intval($my_bean['user_all_bean']) ?? 0;//用户总彩虹豆
+        $star_home['mybean']['yesterday_add_bean'] = intval($my_bean['yesterday_add_bean']) ?? 0;//昨日发放彩虹豆
+        $star_home['mybean']['user_count'] = intval($user_bean['user_count']) ?? 0;//已入驻居民
+        $star_home['mybean']['yesterday_add_user'] = intval($user_bean['yesterday_add_user']) ?? 0;//昨日新增居民
+        $star_home['mybean']['yesterday_quantity_issued'] = intval($yesterday_quantity_issued) ?? 0;//昨日发放总彩虹豆
 
         $star_home['excellent_residents'] = $this->excellentResidents($request) ?? [];
         $star_home['daily_news'] = $this->getNews($request);
@@ -169,6 +177,21 @@ class BeanRepository
 
     }
 
+    //获取某用户豆数
+    function get_user_bean($uid)
+    {
+        try {
+            $url = config("customer.app_service_url").'/user/v2/user_bean';
+            $array = [
+                'json' => ['uid' => $uid], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            return http($url,$array,'get');
+        } catch (\Exception $e) {
+            return [];
+        }
+
+    }
+
     //获取每日新闻
     function getNews($request) {
         try {
@@ -198,4 +221,72 @@ class BeanRepository
 
     }
 
+    public function starDetail($request)
+    {
+        $star_detail = [];
+        $user_bean = Redis::get('my_bean');
+        $user_bean = json_decode($user_bean,true);
+        $yesterday_quantity_issued = Redis::get('yesterday_quantity_issued');
+        $exchange = Redis::ZREVRANGEBYSCORE('post_purchase_message','+inf','-inf');
+        foreach ($exchange as $k=>$v){
+            $exchange[$k] = json_decode($v,true);
+        }
+        Log::debug($user_bean);
+        Log::debug($yesterday_quantity_issued);
+        Log::debug($exchange);
+
+        $post_detail = new Post();
+        if (isset($request['post_id'])){
+            $post = $post_detail->
+                join('post_data', 'post_data.post_id', '=', 'post.id')
+                ->select('post.*','post_data.pv')
+                ->find($request['post_id']);
+            if ($post){
+                $post->created_time = Carbon::parse($post->created_at)->diffForHumans();
+                $imgs = [];
+                foreach($post->imgs as $img){
+                    $imgs[] = $img['img'];
+                }
+                unset($post->imgs);
+                $post->imgs = $imgs;
+                $post->topic = $post->topic();
+                $star_detail['post'] = $post;
+            }
+        }
+        $user_info = $this->getUserInfo($invite_code = $request['invite_code']);
+        if ($user_info){
+            $star_detail['invite']['uid'] = $user_info['uid'] ?? 0;
+            $star_detail['invite']['username'] = $user_info['username'] ?? '';
+            $star_detail['invite']['avatar'] = $user_info['avatar'] ?? '';
+            $star_detail['invite']['bean'] = config("customer.share_post_bean") ?? 0;
+        }else{
+            return jsonError('邀请码有误');
+        }
+
+        $star_detail['mybean']['user_count'] = intval($user_bean['user_count']) ?? 0;//已入驻居民
+        $star_detail['mybean']['yesterday_add_user'] = intval($user_bean['yesterday_add_user']) ?? 0;//昨日新增居民
+        $star_detail['mybean']['yesterday_quantity_issued'] = intval($yesterday_quantity_issued) ?? 0;//昨日发放总彩虹豆
+
+        $star_detail['daily_news'] = $this->getNews($request);
+        $star_detail['exchange'] = $exchange;
+
+        return $star_detail;
+
+    }
+
+    //根据邀请码获取用户信息
+    function getUserInfo($invite_code) {
+        try {
+            $sign = generateSign(['invite_code' => $invite_code], config('customer.app_secret'));
+            $url = config("customer.app_service_url").'/user/v2/member/getInviteCodeMember';
+            $array = [
+                'json' => ['sign' => $sign,'invite_code' => $invite_code], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            return http($url,$array,'get');
+        } catch (\Exception $e) {
+            return [];
+        }
+
+    }
+
 }

+ 1 - 1
app/Repositories/CategoryRepository.php

@@ -22,7 +22,7 @@ class CategoryRepository {
     {
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
         $where = [];
-        if(isset($request['is_suggest'])){
+        if(!empty($request['is_suggest'])){
             $where[] = ['is_suggest', '=', $request['is_suggest']];
         }
         return $this->category->where($where)->paginate($perPage);

+ 16 - 9
app/Repositories/FeedRepositories.php

@@ -109,9 +109,12 @@ class FeedRepositories
     }
     //我的feed
     public function myFeed($request){
-        $token =  JWTAuth::decode(JWTAuth::getToken());
+        $userInfo = $this->getUserInfo();
+        if (empty($userInfo)) {
+            return jsonError('获取用户信息失败');
+        }
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
-        $where[] = ['uid',$token['user']->uid];
+        $where[] = ['uid',$userInfo['uid']];
         $data = $this->feed
             ->where($where)
             ->orderBy('id','desc')
@@ -120,20 +123,22 @@ class FeedRepositories
             foreach ($data as &$value){
                 if($value['type'] == 6){
                     $post = $this->postRepositories->detail($value['relate_id']);
-                    $value['relate_data'] = $this->postDetail($post,$value['follow_uid']);
+                    $value['relate_data'] = $this->postDetail($post,$value['follow_uid'], $userInfo);
                 }
                 if($value['type'] == 5){
                     $value['content'] = null;
-                    $value['relate_data'] = $this->getFollowMemberFans($value['relate_id']);
+                    $relate_data = $this->getFollowMemberFans($value['relate_id']);
+                    if(!empty($relate_data['username'])){
+                        $relate_data['username'] = subtext($relate_data['username'],10);
+                    }
+                    $value['relate_data'] = $relate_data;
                 }
-                //$data[] = $value;
             }
         }
         return $data;
     }
-    public function postDetail($post,$follow_uid){
-        $token =  JWTAuth::decode(JWTAuth::getToken());
-        $uid = $token['user']->uid;
+    public function postDetail($post,$follow_uid,$userInfo){
+        $uid = $userInfo['uid'];
         $imgs = [];
         foreach($post->imgs as $img){
             $imgs[] = $img['img'];
@@ -156,7 +161,7 @@ class FeedRepositories
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
+            'username' => subtext($post['username'],10),
             'avatar' => $post['avatar'],
             'topic' => $topic,
             'title' => $post['title'],
@@ -175,6 +180,8 @@ class FeedRepositories
             'is_dislike' => PostDislike::where('post_id', $post['id'])->where('uid', $uid)->exists()?1:0,
             'is_collect' => PostCollect::where('post_id', $post['id'])->where('uid', $uid)->exists()?1:0,
             'follow_status' => $isFollow,
+            'h5url' => config('customer.share_post_h5url')."?post_id={$post['id']}&invite_code={$userInfo['invite_code']}",
+            'desc_url' => $post['type'] == 'html'?config('customer.app_service_url').'/community/fragment/detail/'.$post['id']:'',
         ];
     }
     public function getPostComment($post_id){

+ 10 - 4
app/Repositories/PostRepositories.php

@@ -141,6 +141,8 @@ class PostRepositories
 
         $date = date('Y-m-d H:i:s');
 
+        $fresh = (Carbon::now()->timestamp) - (Carbon::parse("2019-05-01 00:00:00")->timestamp);
+        $score = $fresh / 86400;
 
         DB::beginTransaction();
         try{
@@ -161,7 +163,7 @@ class PostRepositories
                 'available_bean' => $this->availableBean(),
                 'will_collect_bean' => rand(100, 200),
                 'collect_bean' => 0,
-                'weight' => 0
+                'weight' => $score
             ]);
 
             if($imgs){
@@ -182,7 +184,11 @@ class PostRepositories
             foreach($topicIds as $id){
                 Redis::zincrby('topic.user_uid'.$userInfo['uid'], 1, $id);
             }
-            return jsonSuccess(['h5url' => config('customer.share_post_h5url')."?post_id={$post->id}&invite_code={$userInfo['invite_code']}", 'bean' => config('customer.share_post_bean')]);
+            return jsonSuccess([
+                'post_id' => $post->id,
+                'h5url' => config('customer.share_post_h5url')."?post_id={$post->id}&invite_code={$userInfo['invite_code']}",
+                'bean' => config('customer.share_post_bean')
+            ]);
 
         }catch (QueryException $exception){
             DB::rollBack();
@@ -430,7 +436,7 @@ class PostRepositories
             $topic = $this->topic;
         }
         if(isset($request['is_suggest'])){
-            $where[] = ['topic.is_suggest', $request['is_suggest']];
+            $where[] = ['topic.is_hot', $request['is_suggest']];
         }
 
         if(isset($request['name'])){
@@ -543,7 +549,7 @@ class PostRepositories
                 'id' => $topic->id,
                 'name' => $topic->name,
                 'img' => $topic->img,
-                'follow_count' => $topic->follow->count() + (int) config('customer.add_topic_follow_count'),
+                'follow_count' => getNumber($topic->follow->count() + config('customer.add_topic_follow_count')),
             ];
         }
         return $data;

+ 1 - 1
app/Transformers/FeedTransformer.php

@@ -27,7 +27,7 @@ class FeedTransformer extends TransformerAbstract {
             'id' => $feed['id'],
             'uid' => $feed['uid'],
             'follow_uid' => $feed['follow_uid'],
-            'follow_username' => $feed['follow_username'],
+            'follow_username' => subtext($feed['follow_username'], 10),
             'follow_avatar' => $feed['follow_avatar'],
            // 'follow_status' => $this->getFollowStatus($feed['uid'],$feed['follow_uid']),
             'type' => $feed['type'],

+ 3 - 3
app/Transformers/Post/CommentTransformer.php

@@ -21,9 +21,9 @@ class CommentTransformer extends TransformerAbstract
         foreach($replies as $val){
             $reply[] = [
                 'uid' => $val->uid,
-                'username' => $val->username,
+                'username' => subtext($val->username, 10),
                 'avatar' => $val->avatar,
-                'reply_username' => $val->reply_username,
+                'reply_username' => subtext($val->reply_username, 10),
                 'content' => $val->content,
                 'created_at' => Carbon::parse($val->created_at)->diffForHumans(),
             ];
@@ -31,7 +31,7 @@ class CommentTransformer extends TransformerAbstract
         return [
             'id' => $postComment['id'],
             'uid' => $postComment['uid'],
-            'username' => $postComment['username'],
+            'username' => subtext($postComment['username'], 10),
             'avatar' => $postComment['avatar'],
             'content' => $postComment['is_delete']?'该评论已被删除':$postComment['content'],
             'created_at' => Carbon::parse($postComment['created_at'])->diffForHumans(),

+ 1 - 1
app/Transformers/Post/DetailTransformer.php

@@ -48,7 +48,7 @@ class DetailTransformer extends TransformerAbstract
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
+            'username' => subtext($post['username'], 10),
             'avatar' => $post['avatar'],
             'topic' => $topic,
             'title' => $post['title'],

+ 5 - 2
app/Transformers/Post/ListTransformer.php

@@ -13,9 +13,10 @@ use League\Fractal\TransformerAbstract;
 
 class ListTransformer extends TransformerAbstract
 {
-    public function __construct($uid)
+    public function __construct($uid, $invite_code)
     {
         $this->uid = $uid;
+        $this->invite_code = $invite_code;
     }
     public function transform(Post $post)
     {
@@ -23,12 +24,14 @@ class ListTransformer extends TransformerAbstract
             'id' => $post['id'],
             'type' => $post['type'],
             'uid' => $post['uid'],
-            'username' => $post['username'],
+            'username' => subtext($post['username'], 10),
             'avatar' => $post['avatar'],
             'title' => $post['title'],
             'img' => $post['img'],
             'praise_count' => $post->data->praise_count,
             'is_like' => PostLike::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0,
+            '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']:'',
         ];
     }
 }

+ 2 - 2
app/Transformers/Post/ReplyTransformer.php

@@ -19,8 +19,8 @@ class ReplyTransformer extends TransformerAbstract
         return [
             'id' => $postComment['id'],
             'uid' => $postComment['uid'],
-            'username' => $postComment['username'],
-            'reply_username' => $postComment['reply_username'],
+            'username' => subtext($postComment['username'], 10),
+            'reply_username' => subtext($postComment['reply_username'], 10),
             'avatar' => $postComment['avatar'],
             'content' => $postComment['is_delete']?'该回复已被删除':$postComment['content'],
             'created_at' => Carbon::parse($postComment['created_at'])->diffForHumans(),

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

@@ -20,9 +20,10 @@ use League\Fractal\TransformerAbstract;
 class SuggestTransformer extends TransformerAbstract
 {
     use UserTrait;
-    public function __construct($uid)
+    public function __construct($uid, $invite_code)
     {
         $this->uid = $uid;
+        $this->invite_code = $invite_code;
     }
     public function transform(Post $post)
     {
@@ -38,14 +39,14 @@ class SuggestTransformer extends TransformerAbstract
             $reply = [];
             foreach($replies as $val){
                 $reply[] = [
-                    'username' => $val->username,
-                    'reply_username' => $val->reply_username,
+                    'username' => subtext($val->username, 10),
+                    'reply_username' => subtext($val->reply_username, 10),
                     'content' => $val->content,
                 ];
             }
             $comment[] = [
                 'id' => $item->id,
-                'username' => $item->username,
+                'username' => subtext($item->username, 10),
                 'content' => $item->content,
                 'reply_count' => $replyCount,
                 'reply' => $reply,
@@ -69,7 +70,7 @@ class SuggestTransformer extends TransformerAbstract
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
+            'username' => subtext($post['username'], 10),
             'avatar' => $post['avatar'],
             'topic' => $topic,
             'title' => $post['title'],
@@ -88,6 +89,7 @@ class SuggestTransformer extends TransformerAbstract
             'is_collect' => PostCollect::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0,
             'comment' => $comment,
             'is_follow' => $isFollow,
+            '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']:'',
         ];
     }

+ 5 - 2
app/Transformers/Post/VideoTransformer.php

@@ -16,9 +16,10 @@ use League\Fractal\TransformerAbstract;
 class VideoTransformer extends TransformerAbstract
 {
     use UserTrait;
-    public function __construct($uid)
+    public function __construct($uid, $invite_code)
     {
         $this->uid = $uid;
+        $this->invite_code = $invite_code;
     }
     public function transform(Post $post)
     {
@@ -38,7 +39,7 @@ class VideoTransformer extends TransformerAbstract
             'id' => $post['id'],
             'type' => $post['type'],
             'uid' => $post['uid'],
-            'username' => $post['username'],
+            'username' => subtext($post['username'], 10),
             'avatar' => $post['avatar'],
             'title' => $post['title'],
             'content' => $post['content'],
@@ -51,6 +52,8 @@ class VideoTransformer extends TransformerAbstract
             'is_like' => PostLike::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,
             'is_follow' => $isFollow,
+            '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']:'',
         ];
     }
 }

+ 2 - 2
app/Transformers/Topic/TopicDetailTransformer.php

@@ -21,9 +21,9 @@ class TopicDetailTransformer extends TransformerAbstract
     {
         return [
             'id' => $topic['id'],
-            'name' => $topic['name'],
+            'name' => subtext($topic['name'], 5),
             'img' => $topic['img'],
-            'follow_count' => $topic->follow->count() + (int) config('customer.add_topic_follow_count'),
+            'follow_count' => getNumber($topic->follow->count() + config('customer.add_topic_follow_count')),
             'is_follow' => $topic->follow->where('uid', $this->uid)->count()?1:0,
         ];
     }

+ 2 - 2
app/Transformers/Topic/TopicListTransformer.php

@@ -17,9 +17,9 @@ class TopicListTransformer extends TransformerAbstract
     {
         return [
             'id' => $topic['id'],
-            'name' => $topic['name'],
+            'name' => subtext($topic['name'], 5),
             'img' => $topic['img'],
-            'follow_count' => $topic->follow->count() + (int) config('customer.add_topic_follow_count'),
+            'follow_count' => getNumber($topic->follow->count() + config('customer.add_topic_follow_count')),
         ];
     }
 }

+ 10 - 7
app/Transformers/Topic/TopicPostTransformer.php

@@ -19,9 +19,10 @@ use League\Fractal\TransformerAbstract;
 class TopicPostTransformer extends TransformerAbstract
 {
     use UserTrait;
-    public function __construct($uid)
+    public function __construct($uid, $invite_code)
     {
         $this->uid = $uid;
+        $this->invite_code = $invite_code;
     }
     public function transform(Post $post)
     {
@@ -37,15 +38,15 @@ class TopicPostTransformer extends TransformerAbstract
             $reply = [];
             foreach($replies as $val){
                 $reply[] = [
-                    'username' => $val->username,
-                    'reply_username' => $val->reply_username,
+                    'username' => subtext($val->username, 10),
+                    'reply_username' => subtext($val->reply_username, 10),
                     'content' => $val->content,
                 ];
             }
             $comment[] = [
                 'id' => $item->id,
-                'username' => $item->username,
-                'content' => $item->content,
+                'username' => subtext($item->username, 10),
+                'content' => subtext($item->content, 10),
                 'reply_count' => $replyCount,
                 'reply' => $reply,
             ];
@@ -54,7 +55,7 @@ class TopicPostTransformer extends TransformerAbstract
         foreach($post->topic() as $key => $val){
             $topic[] = [
                 'id' => $key,
-                'name' => $val
+                'name' => subtext($val, 5)
             ];
         }
         $isFollow = 0;
@@ -67,7 +68,7 @@ class TopicPostTransformer extends TransformerAbstract
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
+            'username' => subtext($post['username'], 10),
             'avatar' => $post['avatar'],
             'topic' => $topic,
             'title' => $post['title'],
@@ -85,6 +86,8 @@ class TopicPostTransformer extends TransformerAbstract
             'is_collect' => PostCollect::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0,
             'comment' => $comment,
             'is_follow' => $isFollow,
+            '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']:'',
         ];
     }
 }

+ 2 - 0
routes/api.php

@@ -75,6 +75,8 @@ $api->version('v1', [
         $api->get('rankingList', 'BeanDetailController@rankingList');
         //星球首页
         $api->get('starHome', 'BeanDetailController@starHome');
+        //分享/邀请首页
+        $api->get('starDetail', 'BeanDetailController@starDetail');
 
         //用户发布数,收藏数,转发数
         $api->get('post/memberPostStatistics', 'PostController@memberPostStatistics');