Bläddra i källkod

Merge branch 'develop'

# Conflicts:
#	app/Repositories/FeedRepositories.php
xielin 5 år sedan
förälder
incheckning
b83e7d05fe

+ 3 - 7
app/Http/Controllers/V1/CategoryController.php

@@ -23,13 +23,9 @@ class CategoryController extends Controller {
     }
     //列表
     public function index(Request $request) {
-        $categoryList = $this->categoryRepository->lists($request->all());
-        $fractal = new Manager();
-        $resource = new Collection($categoryList, new CategoryTransformer());
-        $resource->setPaginator(new IlluminatePaginatorAdapter($categoryList));
-        $data = $fractal->createData($resource)->toArray();
-        return jsonSuccess($data);
-    }
+        $data = $categoryList = $this->categoryRepository->lists($request->all());
+        return jsonSuccess(['topic_category' => $data]);
+}
     //获取多个话题
     public function getTopics(Request $request){
         $data = $request->only('ids');

+ 25 - 3
app/Http/Controllers/V1/PostController.php

@@ -20,6 +20,7 @@ use App\Transformers\Post\PostTransformer;
 use App\Transformers\Post\ReplyTransformer;
 use App\Transformers\Post\SuggestTransformer;
 use App\Transformers\Post\VideoTransformer;
+use App\Transformers\Topic\MyTopicListTransformer;
 use App\Transformers\Topic\TopicDetailTransformer;
 use App\Transformers\Topic\TopicListTransformer;
 use App\Transformers\Topic\TopicPostTransformer;
@@ -81,6 +82,20 @@ class PostController extends Controller
         return $this->postRepositories->comment($request->all());
     }
 
+    /**
+     * 删除评论
+     */
+    public function commentDelete(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return jsonError($validator->errors()->first());
+        }
+        return  $this->postRepositories->commentDelete($request->all());
+    }
+
     /**
      * 内容列表
      */
@@ -329,10 +344,17 @@ class PostController extends Controller
      */
     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));
+        $param = $request->all();
+        if(isset($param['category_id']) && $param['category_id'] == -1){
+            $list = $this->postRepositories->myTopicList($request->all());
+            $resource = new Collection($list, new MyTopicListTransformer());
+            $resource->setPaginator(new IlluminatePaginatorAdapter($list));
+        }else{
+            $list = $this->postRepositories->topicList($request->all());
+            $resource = new Collection($list, new TopicListTransformer());
+            $resource->setPaginator(new IlluminatePaginatorAdapter($list));
+        }
         $data = $fractal->createData($resource)->toArray();
 
         return jsonSuccess($data);

+ 2 - 2
app/Models/Feed.php

@@ -11,6 +11,6 @@ use Illuminate\Database\Eloquent\Model;
 class Feed extends Model
 {
 //
-    protected $table = 'feed';
-    protected $guarded = [];
+    public $table = 'feed_0';
+    protected $fillable = [];
 }

+ 5 - 0
app/Models/MemberFollowTopic.php

@@ -12,4 +12,9 @@ use Illuminate\Database\Eloquent\Model;
 class MemberFollowTopic extends Model{
     protected $table = 'member_follow_topic';
     protected $guarded = [];
+
+    public function topic()
+    {
+        return $this->hasOne('App\Models\Topic', 'id', 'topic_id');
+    }
 }

+ 18 - 4
app/Repositories/CategoryRepository.php

@@ -20,12 +20,26 @@ class CategoryRepository {
     //列表
     public function lists($request)
     {
-        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
         $where = [];
-        if(!empty($request['is_suggest'])){
-            $where[] = ['is_suggest', '=', $request['is_suggest']];
+        if(isset($request['is_suggest']) && $request['is_suggest'] == 1){
+            $where [] = ['is_suggest', 1];
+            $data = [];
+        }else{
+            $data = [
+                [
+                    'id' => -2,
+                    'name' => '热门',
+                    'img' => config('customer.category_hot_img')
+                ],
+                [
+                    'id' => -1,
+                    'name' => '我的话题',
+                    'img' => config('customer.category_my_img')
+                ]
+            ];
         }
-        return $this->category->where($where)->paginate($perPage);
+        $categories =  $this->category->select('id', 'name', 'img')->where($where)->limit(50)->get()->toArray();
+        return array_merge($data, $categories);
     }
     //获取多个话题
     public function getTopics($ids){

+ 24 - 17
app/Repositories/FeedRepositories.php

@@ -13,6 +13,7 @@ use App\Models\Behavior;
 use App\Models\Feed;
 use App\Models\PostComment;
 use Carbon\Carbon;
+use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Facades\Redis;
 use Tymon\JWTAuth\Facades\JWTAuth;
@@ -25,9 +26,8 @@ class FeedRepositories
 {
     use UserTrait;
 
-    public function __construct(Feed $feed, PostRepositories $postRepositories, PostComment $postComment)
+    public function __construct(PostRepositories $postRepositories, PostComment $postComment)
     {
-        $this->feed = $feed;
         $this->postRepositories = $postRepositories;
         $this->postComment = $postComment;
     }
@@ -78,6 +78,7 @@ class FeedRepositories
         if ($feedType) {
             $data = [];
             foreach ($fans as $fan) {
+                $number = substr($fan, -1);
                 $data['uid'] = $fan;
                 $data['follow_uid'] = $request['target_id'];
                 $data['follow_username'] = $request['target_username'];
@@ -111,20 +112,20 @@ class FeedRepositories
                 Log::debug('创建Feed流-data:' . json_encode($data));
                 //目前只有评论可以重复出现在别人的feed流中,其他类型如果出现过一次不再产生新的feed信息
                 if (in_array($feedType, [4])) {
-                    $this->feed->insert($data);
+                    DB::table('feed_'.$number)->insert($data);
                 } else {
                     //此处需要优化,如果feed表需要清理历史数据怎么处理
                     //以下判断可以控制virus的行为,重复不添加feed,但是关注用户不行,关注用户不存在is_existing字段
                     //if (isset($request['is_existing']) && intval($request['is_existing']) == 0) {
-                    //    $this->feed->insert($data);
+                    //    DB::table('feed_'.$number)->insert($data);
                     //}
-                    $feedRow = $this->feed->where('uid',$data['uid'])
+                    $feedRow = DB::table('feed_'.$number)->where('uid',$data['uid'])
                         ->where('follow_uid',$data['follow_uid'])
                         ->where('type',$data['type'])
                         ->where('relate_id',$data['relate_id'])
                         ->first();
-                    if (empty($feedRow)) {
-                        $this->feed->insert($data);
+                    if(empty($feedRow)){
+                        DB::table('feed_'.$number)->insert($data);
                     }
                 }
 
@@ -142,7 +143,12 @@ class FeedRepositories
         }
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
         $where[] = ['uid', $userInfo['uid']];
-        $data = $this->feed
+        $number = substr($userInfo['uid'], -1);
+        $table_name = 'feed_'.$number;
+        $feedModel = new Feed();
+        $feedModel->setTable($table_name);
+
+        $data = $feedModel
             ->where($where)
             ->orderBy('id', 'desc')
             ->paginate($perPage);
@@ -158,10 +164,7 @@ class FeedRepositories
                 }
                 if ($value['type'] == 5) {
                     $value['content'] = null;
-                    $user = Redis::HGETALL('userInfo:' . $value['relate_id']);
-                    if (!$user) {
-                        $user = $this->userInfo($value['relate_id']);
-                    }
+                    $user = $this->userInfo($value['relate_id']);
                     if ($user) {
                         Log::debug("测试feed关注状态:uid{$userInfo['uid']}followUid{$value['relate_id']}");
                         $value['relate_data'] = [
@@ -201,13 +204,14 @@ class FeedRepositories
         if ($followStatus) {
             $isFollow = $followStatus;
         }
+        $user = $this->userInfo($post['uid']);
         return [
             'id' => $post['id'],
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
-            'avatar' => $post['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'topic' => $topic,
             'title' => $post['title'],
             'content' => $post['content'],
@@ -232,12 +236,14 @@ class FeedRepositories
 
     public function getPostComment($post_id)
     {
-        $comments = $this->postComment->where(['post_id' => $post_id, 'parent_id' => 0])->select('id', 'uid', 'username', 'content', 'is_delete')->orderBy('is_delete', 'asc')->orderBy('id', 'desc')->take(2)->get();
+        $comments = $this->postComment->where(['post_id' => $post_id, 'parent_id' => 0])->select('id', 'uid', 'content', 'is_delete')->orderBy('is_delete', 'asc')->orderBy('id', 'desc')->take(2)->get();
         foreach ($comments as &$comment) {
             if ($comment->is_delete) {
                 $comment->content = '该评论已被删除';
             }
             unset($comment->is_delete);
+            $user = $this->userInfo($comment->uid);
+            $comment->username = $user['username'];
         }
         return $comments;
     }
@@ -248,8 +254,9 @@ class FeedRepositories
      */
     public function contentFeedDelete($data)
     {
+        $number = substr($data['uid'], -1);
         try {
-            $this->feed->where('uid', $data['uid'])->where('follow_uid', $data['follow_uid'])->delete();
+            DB::table('feed_'.$number)->where('uid', $data['uid'])->where('follow_uid', $data['follow_uid'])->delete();
             Log::debug("取消关注删除对应feed成功uid{$data['uid']}followUid{$data['follow_uid']}");
         } catch (\Exception $exception) {
             Log::error('取消关注删除对应feed失败' . json_encode($data) . $exception->getMessage());
@@ -257,4 +264,4 @@ class FeedRepositories
         }
     }
 
-}
+}

+ 7 - 5
app/Repositories/MusicRepository.php

@@ -5,6 +5,7 @@
  * Date: 2019/7/4
  * Time: 上午9:50
  */
+
 namespace App\Repositories;
 
 use App\Models\PostMusicCategory;
@@ -14,7 +15,7 @@ use Illuminate\Support\Facades\Cache;
 
 class MusicRepository
 {
-    public function __construct(PostMusicCategoryRel $postMusicCategoryRel,PostMusicCategory $postMusicCategory,PostMusicUser $postMusicUser)
+    public function __construct(PostMusicCategoryRel $postMusicCategoryRel, PostMusicCategory $postMusicCategory, PostMusicUser $postMusicUser)
     {
         $this->postMusicCategoryRel = $postMusicCategoryRel;
         $this->postMusicCategory = $postMusicCategory;
@@ -25,7 +26,8 @@ class MusicRepository
     public function lists($request)
     {
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
-        $music_key = config('constants.MUSIC_LIST');
+        $key = config('constants.MUSIC_LIST');
+        $music_key = sprintf($key, md5($perPage));
         if (Cache::has($music_key)) {
             return Cache::store('redis')->get($music_key);
         }
@@ -49,7 +51,7 @@ class MusicRepository
     public function category_list($request)
     {
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
-        return $this->postMusicCategory->where('is_open',1)->orderBy('id', 'asc')->paginate($perPage);
+        return $this->postMusicCategory->where('is_open', 1)->orderBy('sort', 'asc')->paginate($perPage);
     }
 
     public function postMusicList($request)
@@ -59,9 +61,9 @@ class MusicRepository
         $postMusicList = $this->postMusicCategoryRel
             ->join('post_music_category', 'post_music_category.id', '=', 'post_music_category_rel.music_category_id')
             ->join('post_music', 'post_music.id', '=', 'post_music_category_rel.mid')
-            ->select('post_music.*')
+            ->select('post_music.*', 'post_music_category_rel.sort')
             ->where(['post_music_category.id' => $request['category_id'], 'post_music_category.is_open' => 1])
-            ->orderBy('id', 'desc')
+            ->orderBy('post_music_category_rel.sort', 'asc')
             ->paginate($perPage);
 
         return $postMusicList;

+ 79 - 10
app/Repositories/PostRepositories.php

@@ -10,6 +10,7 @@ namespace App\Repositories;
 
 
 use App\Models\Behavior;
+use App\Models\MemberFollowTopic;
 use App\Models\Post;
 use App\Models\PostCollect;
 use App\Models\PostComment;
@@ -47,6 +48,7 @@ class PostRepositories
                                 PostLog $postLog,
                                 DetectionService $detectionService,
                                 AliYunVodService $aliYunVodService,
+                                MemberFollowTopic $memberFollowTopic,
                                 Topic $topic)
     {
         $this->post = $post;
@@ -58,6 +60,7 @@ class PostRepositories
         $this->postLog = $postLog;
         $this->detectionService = $detectionService;
         $this->topic = $topic;
+        $this->memberFollowTopic = $memberFollowTopic;
         $this->aliYunVodService = $aliYunVodService;
     }
 
@@ -110,6 +113,9 @@ class PostRepositories
             }
         }
         $allImg = array_merge($imgs, [$request['img']]);
+        foreach($allImg as &$img){
+            $img = $img .'&x-oss-process=image/resize,p_50/quality,Q_50';
+        }
         $detectionImageResult = $this->detectionService->checkImg($allImg);
         if ($detectionImageResult['code']<0) {
             return jsonError('图片违规,请修正哦');
@@ -282,6 +288,44 @@ class PostRepositories
         }
     }
 
+    /**
+     * 删除评论
+     */
+    public function commentDelete($request)
+    {
+        $userInfo = $this->getUserInfo();
+        if (empty($userInfo)) {
+            return jsonError('获取用户信息失败');
+        }
+        $comment = $this->postComment->find($request['id']);
+        if (!$comment) {
+            return jsonError('获取评论信息失败');
+        }
+
+        if($userInfo['uid'] != $comment->uid){
+            return jsonError('只能删除自己的评论');
+        }
+
+        if ($comment->is_delete == 1) {
+            return jsonError('该评论已经删除');
+        }
+
+        DB::beginTransaction();
+        try {
+            $comment->is_delete = 1;
+            $comment->save();
+
+            DB::commit();
+            Redis::SADD('delete_post_comment_ids', $comment->id);
+            return jsonSuccess('删除评论成功');
+
+        } catch (QueryException $exception) {
+            DB::rollBack();
+            Log::debug('删除评论:' . $request['id'] . $exception->getMessage());
+            return jsonError('删除评论失败');
+        }
+    }
+
     /**
      * 内容列表
      */
@@ -373,7 +417,7 @@ class PostRepositories
     /**
      * 个人中心内容列表
      */
-    public function MyPost($request, $uid)
+    public function myPost($request, $uid)
     {
         $type = $request['type'];
         $perPage = isset($request['per_page']) ? $request['per_page'] : 18;
@@ -485,14 +529,14 @@ class PostRepositories
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
 
         $where = [];
+        $topic = $this->topic;
         if(isset($request['category_id']) && $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']) && $request['is_suggest']){
-            $where[] = ['topic.is_hot', $request['is_suggest']];
+            if($request['category_id'] == -2){
+                $where[] = ['topic.is_hot', 1];
+            }else{
+                $topic = $topic->join('category_topic', 'category_topic.topic_id', '=', 'topic.id')->select('topic.*');
+                $where[] = ['category_topic.category_id', $request['category_id']];
+            }
         }
 
         if(isset($request['name'])){
@@ -504,6 +548,25 @@ class PostRepositories
             ->paginate($perPage);
     }
 
+    /**
+     * 我的话题列表
+     */
+    public function myTopicList($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+
+        $uid = 0;
+        $user = $this->getUserInfo();
+        if($user){
+            $uid = $user['uid'];
+        }
+
+        return $this->memberFollowTopic
+            ->where('uid', $uid)
+            ->orderBy('id','desc')
+            ->paginate($perPage);
+    }
+
 
     /**
      * 更新帖子统计数量
@@ -617,11 +680,17 @@ class PostRepositories
      */
     public function getPostVideo($ids)
     {
-        return $this->post
-            ->select('id', 'img', 'uid', 'username', 'avatar')
+        $posts = $this->post
+            ->select('id', 'img', 'uid')
             ->whereIn('id', explode(',',$ids))
             ->where('type', 'video')
             ->get();
+        foreach($posts as &$post){
+            $user = $this->userInfo($post->uid);
+            $post->username = $user['username'];
+            $post->avatar = $user['avatar'];
+        }
+        return $posts;
     }
     //用户内容数,转发数,收藏数统计
     public function memberPostStatistics($uid){

+ 2 - 1
app/Service/DetectionService.php

@@ -40,11 +40,11 @@ class DetectionService
         $client = $this->getClient();
         try {
             $response = $client->getAcsResponse($request);
-
             if(200 == $response->code){
                 $taskResults = $response->data;
                 $detail = [];
                 $flag = true;
+                Log::debug('detection-results-list:'.json_encode($taskResults));
                 foreach ($taskResults as $taskResult) {
                     if(200 == $taskResult->code){
                         $this->processSceneResult($taskResult, $flag);
@@ -73,6 +73,7 @@ class DetectionService
      * @param $msg
      */
     private function echoStr($code, $msg, $detail = []){
+        Log::debug('detection-output:code:'.$code.' msg:'.$msg.' detail:'.json_encode($detail));
         return array(
             'code' => $code,
             'msg' => $msg,

+ 21 - 9
app/Traits/UserTrait.php

@@ -30,17 +30,29 @@ trait UserTrait
 
     //获取用户信息
     public function userInfo($uid) {
-        try {
-            $sign = generateSign(['uid' => $uid], config('customer.app_secret'));
-            $url = config("customer.app_service_url").'/user/getUserInfo';
-            $array = [
-                'json' => ['sign' => $sign,'uid' => $uid], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+        $user = Redis::HGETALL('userInfo:' . $uid);
+        if(!$user){
+            try {
+                $sign = generateSign(['uid' => $uid], config('customer.app_secret'));
+                $url = config("customer.app_service_url").'/user/getUserInfo';
+                $array = [
+                    'json' => ['sign' => $sign,'uid' => $uid], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+                ];
+                $user =  http($url,$array,'get');
+            } catch (\Exception $e) {
+                $user =  [];
+            }
+        }
+        if(!$user){
+            $user = [
+                'uid' => $uid,
+                'username' => '老板',
+                'avatar' => 'http://oss.caihongxingqiu.net/201907/1564471458_5d3ff0a231721.png?280_280',
+                'gender' => 2,
+                'invite_code' => ''
             ];
-            return http($url,$array,'get');
-        } catch (\Exception $e) {
-            return [];
         }
-
+        return $user;
     }
 
     //获取关注状态

+ 3 - 2
app/Transformers/FeedTransformer.php

@@ -32,12 +32,13 @@ class FeedTransformer extends TransformerAbstract {
                 unset($content->comment_id);
             }
         }
+        $user = $this->userInfo($feed['follow_uid']);
         return [
             'id' => $feed['id'],
             'uid' => $feed['uid'],
             'follow_uid' => $feed['follow_uid'],
-            'follow_username' => $feed['follow_username'],
-            'follow_avatar' => $feed['follow_avatar'],
+            'follow_username' => $user['username'],
+            'follow_avatar' => $user['avatar'],
            // 'follow_status' => $this->getFollowStatus($feed['uid'],$feed['follow_uid']),
             'type' => $feed['type'],
             'relate_id' => $feed['relate_id'],

+ 2 - 2
app/Transformers/MusicTranformer.php

@@ -19,8 +19,8 @@ class MusicTranformer extends TransformerAbstract {
             'name' => $musicList['name'],
             'music_duration' => $musicList['music_duration'],
             'url' => $musicList['url'],
-            'img' => $musicList['img'],
-            'singer' => $musicList['singer'],
+            'img' => (string)$musicList['img'],
+            'singer' => (string)$musicList['singer'],
         ];
     }
 }

+ 16 - 6
app/Transformers/Post/CommentTransformer.php

@@ -8,35 +8,45 @@
 namespace  App\Transformers\Post;
 
 use App\Models\PostComment;
+use App\Traits\UserTrait;
 use Carbon\Carbon;
 use League\Fractal\TransformerAbstract;
 
 class CommentTransformer extends TransformerAbstract
 {
-    
+    use UserTrait;
     public function transform(PostComment $postComment)
     {
         $replies = PostComment::where('parent_id', $postComment['id'])->orderBy('id', 'desc')->limit(2)->get();
         $reply = [];
         foreach($replies as $val){
+            $userComment = $this->userInfo($val->uid);
+            $replyUsername = '';
+            if($val->reply_uid){
+                $userReply = $this->userInfo($val->reply_uid);
+                $replyUsername = $userReply['username'];
+            }
             $reply[] = [
                 'uid' => $val->uid,
-                'username' => $val->username,
-                'avatar' => $val->avatar,
-                'reply_username' => $val->reply_username,
+                'username' => $userComment['username'],
+                'avatar' => $userComment['avatar'],
+                'reply_username' => $replyUsername,
                 'content' => $val->is_delete?'该评论已被删除':$val->content,
                 'created_at' => Carbon::parse($val->created_at)->diffForHumans(),
+                'is_delete' => $val->is_delete,
             ];
         }
+        $user = $this->userInfo($postComment['uid']);
         return [
             'id' => $postComment['id'],
             'uid' => $postComment['uid'],
-            'username' => $postComment['username'],
-            'avatar' => $postComment['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'content' => $postComment['is_delete']?'该评论已被删除':$postComment['content'],
             'created_at' => Carbon::parse($postComment['created_at'])->diffForHumans(),
             'reply_count' => $postComment->reply->count(),
             'reply' => $reply,
+            'is_delete' => $postComment['is_delete'],
         ];
     }
 }

+ 3 - 2
app/Transformers/Post/DetailTransformer.php

@@ -52,13 +52,14 @@ class DetailTransformer extends TransformerAbstract
                 $isFollow = $followStatus;
             }
         }
+        $user = $this->userInfo($post['uid']);
         return [
             'id' => $post['id'],
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
-            'avatar' => $post['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'topic' => $topic,
             'topic_ids' => $post['topic_ids'],
             'title' => $post['title'],

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

@@ -9,10 +9,12 @@ namespace  App\Transformers\Post;
 
 use App\Models\Post;
 use App\Models\PostLike;
+use App\Traits\UserTrait;
 use League\Fractal\TransformerAbstract;
 
 class ListTransformer extends TransformerAbstract
 {
+    use UserTrait;
     public function __construct($uid, $invite_code)
     {
         $this->uid = $uid;
@@ -24,12 +26,13 @@ class ListTransformer extends TransformerAbstract
         if($this->uid){
             $isLike = PostLike::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0;
         }
+        $user = $this->userInfo($post['uid']);
         return [
             'id' => $post['id'],
             'type' => $post['type'],
             'uid' => $post['uid'],
-            'username' => $post['username'],
-            'avatar' => $post['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'title' => $post['title'],
             'content' => subtext($post['content'], 100),
             'img' => $post['img'],

+ 4 - 2
app/Transformers/Post/PostTransformer.php

@@ -18,6 +18,7 @@ use League\Fractal\TransformerAbstract;
 
 class PostTransformer extends TransformerAbstract
 {
+    use UserTrait;
     public function __construct()
     {
     }
@@ -35,13 +36,14 @@ class PostTransformer extends TransformerAbstract
                 'name' => $val
             ];
         }
+        $user = $this->userInfo($post['uid']);
         return [
             'id' => $post['id'],
             'type' => $post['type'],
             'created_at' => $post['created_at'],
             'uid' => $post['uid'],
-            'username' => $post['username'],
-            'avatar' => $post['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'topic' => $topic,
             'title' => $post['title'],
             'content' => $post['content'],

+ 12 - 4
app/Transformers/Post/ReplyTransformer.php

@@ -8,22 +8,30 @@
 namespace  App\Transformers\Post;
 
 use App\Models\PostComment;
+use App\Traits\UserTrait;
 use Carbon\Carbon;
 use League\Fractal\TransformerAbstract;
 
 class ReplyTransformer extends TransformerAbstract
 {
-
+    use UserTrait;
     public function transform(PostComment $postComment)
     {
+        $user = $this->userInfo($postComment['uid']);
+        $replyUsername = '';
+        if($postComment['reply_uid']){
+            $userReply = $this->userInfo($postComment['reply_uid']);
+            $replyUsername = $userReply['username'];
+        }
         return [
             'id' => $postComment['id'],
             'uid' => $postComment['uid'],
-            'username' => $postComment['username'],
-            'reply_username' => $postComment['reply_username'],
-            'avatar' => $postComment['avatar'],
+            'username' => $user['username'],
+            'reply_username' => $replyUsername,
+            'avatar' => $user['avatar'],
             'content' => $postComment['is_delete']?'该回复已被删除':$postComment['content'],
             'created_at' => Carbon::parse($postComment['created_at'])->diffForHumans(),
+            'is_delete' => $postComment['is_delete'],
         ];
     }
 }

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

@@ -34,9 +34,10 @@ class SuggestTransformer extends TransformerAbstract
         $comment = [];
         $comments = PostComment::where('post_id', $post['id'])->where('parent_id', 0)->orderBy('is_delete', 'asc')->orderBy('id', 'desc')->limit(2)->get();
         foreach($comments as $item){
+            $userComment = $this->userInfo($item->uid);
             $comment[] = [
                 'id' => $item->id,
-                'username' => $item->username,
+                'username' => $userComment['username'],
                 'content' => $item->is_delete?'该评论已被删除':$item->content,
             ];
         }
@@ -55,14 +56,15 @@ class SuggestTransformer extends TransformerAbstract
             $isDislike = PostDislike::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0;
             $isCollect = PostCollect::where('post_id', $post['id'])->where('uid', $this->uid)->exists()?1:0;
         }
+        $user = $this->userInfo($post['uid']);
         return [
             'show_type' => 'post',
             'id' => $post['id'],
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
-            'avatar' => $post['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'topic' => $topic,
             'title' => $post['title'],
             'content' => $post['content'],

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

@@ -41,12 +41,13 @@ class VideoTransformer extends TransformerAbstract
                 'name' => $val
             ];
         }
+        $user = $this->userInfo($post['uid']);
         return [
             'id' => $post['id'],
             'type' => $post['type'],
             'uid' => $post['uid'],
-            'username' => $post['username'],
-            'avatar' => $post['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'title' => $post['title'],
             'content' => $post['content'],
             'img' => $post['img'],

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

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/7/31
+ * Time: 13:44
+ */
+namespace  App\Transformers\Topic;
+
+use App\Models\MemberFollowTopic;
+use League\Fractal\TransformerAbstract;
+
+class MyTopicListTransformer extends TransformerAbstract
+{
+    public function transform(MemberFollowTopic $memberFollowTopic)
+    {
+        return [
+            'id' => $memberFollowTopic['topic_id'],
+            'name' => $memberFollowTopic->topic->name,
+            'img' => $memberFollowTopic->topic->img,
+            'follow_count' => getNumber($memberFollowTopic->topic->follow->count() + $memberFollowTopic->topic->base_count),
+        ];
+    }
+}

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

@@ -8,7 +8,6 @@
 namespace  App\Transformers\Topic;
 
 use App\Models\Topic;
-use Carbon\Carbon;
 use League\Fractal\TransformerAbstract;
 
 class TopicListTransformer extends TransformerAbstract

+ 13 - 5
app/Transformers/Topic/TopicPostTransformer.php

@@ -37,15 +37,22 @@ class TopicPostTransformer extends TransformerAbstract
             $replies = PostComment::where('parent_id', $item->id)->orderBy('id', 'desc')->limit(2)->get();
             $reply = [];
             foreach($replies as $val){
+                $userComment = $this->userInfo($val->uid);
+                $replyUsername = '';
+                if($val->reply_uid){
+                    $userReply = $this->userInfo($val->reply_uid);
+                    $replyUsername = $userReply['username'];
+                }
                 $reply[] = [
-                    'username' => $val->username,
-                    'reply_username' => $val->reply_username,
+                    'username' => $userComment['username'],
+                    'reply_username' => $replyUsername,
                     'content' => $val->content,
                 ];
             }
+            $userComment = $this->userInfo($item->uid);
             $comment[] = [
                 'id' => $item->id,
-                'username' => $item->username,
+                'username' => $userComment['username'],
                 'content' => $item->content,
                 'reply_count' => $replyCount,
                 'reply' => $reply,
@@ -71,13 +78,14 @@ class TopicPostTransformer extends TransformerAbstract
                 $isFollow = $followStatus;
             }
         }
+        $user = $this->userInfo($post['uid']);
         return [
             'id' => $post['id'],
             'type' => $post['type'],
             'created_at' => Carbon::parse($post['created_at'])->diffForHumans(),
             'uid' => $post['uid'],
-            'username' => $post['username'],
-            'avatar' => $post['avatar'],
+            'username' => $user['username'],
+            'avatar' => $user['avatar'],
             'topic' => $topic,
             'title' => $post['title'],
             'content' => $post['content'],

+ 2 - 0
config/customer.tpl

@@ -7,4 +7,6 @@ return [
     'share_post_h5url' => '{share_post_h5url}',
     'share_post_bean' => '{share_post_bean}',
     'post_delete_image' => '{post_delete_image}',
+    'category_hot_img' => '{category_hot_img}',
+    'category_my_img' => '{category_my_img}',
 ];

+ 6 - 4
routes/api.php

@@ -58,6 +58,10 @@ $api->version('v1', [
     $api->get('post/comment', 'PostController@commentList');
     //回复列表
     $api->get('post/reply', 'PostController@replyList');
+    //获取内容视频组
+    $api->get('post/video/group', 'PostController@getPostVideo');
+    //获取话题
+    $api->get('topic/group', 'PostController@getTopic');
 
     //登录+验签
     $api->group(['middleware' => ['chxq_jwt_auth','chxq_sign']], function ($api) {
@@ -69,16 +73,14 @@ $api->version('v1', [
         $api->get('post/my', 'PostController@myPost');
         //评价&回复
         $api->post('post/comment', 'PostController@comment');
+        //评价&回复删除
+        $api->delete('post/comment', 'PostController@commentDelete');
         //话题分类
         $api->get('topicCategory', 'CategoryController@index');
         //获取话题
         $api->get('topicCategory/getTopics', 'CategoryController@getTopics');
-        //获取话题
-        $api->get('topic/group', 'PostController@getTopic');
         //话题列表
         $api->get('topic', 'PostController@topicList');
-        //获取内容视频组
-        $api->get('post/video/group', 'PostController@getPostVideo');
         //关注推荐话题
         $api->post('memberFollowTopic', 'MemberFollowTopic@memberFollowTopic');
         //关注单个话题

+ 1 - 1
routes/web.php

@@ -12,7 +12,7 @@
 */
 
 $router->get('/', function () use ($router) {
-    return $router->app->version().'-order-service';
+    return '欢迎来到由你';
 });