123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- /**
- * Created by PhpStorm.
- * User: edz
- * Date: 2019-06-10
- * Time: 17:53
- */
- namespace App\Repositories;
- use App\Models\Behavior;
- use App\Models\Feed;
- use Carbon\Carbon;
- use Illuminate\Support\Facades\Log;
- class FeedRepositories
- {
- public function __construct(Feed $feed,PostRepositories $postRepositories)
- {
- $this->feed = $feed;
- $this->postRepositories = $postRepositories;
- }
- public function getFeedType($action)
- {
- $type = [
- 'like' => 1,
- 'forward' => 2,
- 'collect' => 3,
- 'comment' => 4,
- 'focus' => 5,
- 'publish' => 6
- ];
- return isset($type[$action]) ? $type[$action] : 0;
- }
- /**
- * 创建feed流
- * 更新帖子统计数
- * @param $request
- */
- public function contentCreate($request){
- $this->feedCreate($request);
- //关注操作不需要调用
- if($request['behavior_flag']!='focus'){
- $this->postRepositories->updatePostData($request);
- }
- }
- /**
- * 创建feed流内容
- * @param $request
- */
- public function feedCreate($request)
- {
- Log::debug('创建Feed流-请求参数:'.json_encode($request));
- $fans = isset($request['fans'])?$request['fans']:[];
- if(empty($fans)){//没有粉丝,不用插入
- Log::debug('创建Feed流-没有粉丝,不用创建相关feed流');
- return true;
- }
- $behaviorFlag = isset($request['behavior_flag'])?$request['behavior_flag']:'';
- $feedType = $this->getFeedType($behaviorFlag);
- Log::debug('创建Feed流-feed类型:'.$feedType);
- if($feedType){
- $data = [];
- foreach ($fans as $fan) {
- $data['uid'] = $fan;
- $data['follow_uid'] = $request['target_id'];
- $data['follow_username'] = $request['target_username'];
- $data['follow_avatar'] = isset($request['target_avatar'])?$request['target_avatar']:'';
- $data['type'] = $feedType;
- if(in_array($feedType,[1,2,3])){
- $data['relate_id'] = $request['post_id'];
- $content['post_desc'] = $request['post_desc'];
- $content['beans'] = isset($request['rewards']['bean'])?intval($request['rewards']['bean']):0;
- }elseif ($feedType==4){//评论
- $data['relate_id'] = $request['post_id'];
- $content['post_desc'] = $request['post_desc'];
- $content['comment_desc'] = $request['comment_content'];
- $content['beans'] = isset($request['rewards']['bean'])?intval($request['rewards']['bean']):0;
- }elseif ($feedType==6){//发布
- $data['relate_id'] = $request['post_id'];
- $content['post_desc'] = $request['post_desc'];
- $content['beans'] = isset($request['rewards']['bean'])?intval($request['rewards']['bean']):0;
- }elseif ($feedType==5){//关注
- $data['relate_id'] = $request['focus_uid'];
- $content = "";
- }
- $data['content'] = json_encode($content);
- $data['created_at'] = Carbon::now();
- $data['updated_at'] = Carbon::now();
- Log::debug('创建Feed流-data:'.json_encode($data));
- $this->feed->insert($data);
- }
- }
- return true;
- }
- }
|