12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019/6/15
- * Time: 16:40
- */
- namespace App\Transformers\Post;
- use App\Models\PostComment;
- use App\Traits\UserTrait;
- use Carbon\Carbon;
- use Illuminate\Support\Facades\Redis;
- use League\Fractal\TransformerAbstract;
- class CommentTransformer extends TransformerAbstract
- {
- use UserTrait;
- public function transform(PostComment $postComment)
- {
- $reply = [];
- $replyKey = 'post_new_reply_'.$postComment['id'];
- $replyData = Redis::GET($replyKey);
- if($replyData){
- $reply = json_decode($replyData);
- foreach($reply as &$item){
- $item['created_at'] = Carbon::parse($item['created_at'])->diffForHumans();
- }
- }else{
- $replies = PostComment::where('parent_id', $postComment['id'])->orderBy('id', 'desc')->limit(2)->get();
- 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' => $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,
- ];
- }
- Redis::SET($replyKey, json_encode($reply));
- Redis::EXPIRE($replyKey, 604800);
- }
- $user = $this->userInfo($postComment['uid']);
- return [
- 'id' => $postComment['id'],
- 'uid' => $postComment['uid'],
- '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'],
- ];
- }
- }
|