public function follow(Request $request, FeedModel $model, FeedRepository $repository)
{
if (is_null($user = $request->user('api'))) {
abort(401);
} $limit = $request->query('limit', 15);
$after = $request->query('after');
$feeds = $model->leftJoin('user_follow', function ($join) use ($user) {
$join->where('user_follow.user_id', $user->id);
})
->whereDoesntHave('blacks', function ($query) use ($user) {
$query->where('user_id', $user);
})
->where(function ($query) use ($user) {
$query->whereColumn('feeds.user_id', '=', 'user_follow.target')
->orWhere('feeds.user_id', $user->id);
})
->with([
'user' => function ($query) {
return $query->withTrashed();
},
'topics' => function ($query) {
return $query->select('id', 'name');
},
'user.certification',
'pinnedComments' => function ($query) {
return $query->with([
'user',
'user.certification',
])
->where('expires_at', '>', new Carbon)
->orderBy('amount', 'desc')
->orderBy('created_at', 'desc');
},
])
->when((bool) $after, function ($query) use ($after) {
return $query->where('feeds.id', '<', $after);
})
->distinct()
->select('feeds.*')
->orderBy('feeds.id', 'desc')
->limit($limit)
->get(); return $feeds->map(function (FeedModel $feed) use ($repository, $user) {
$feed->feed_view_count += 1;
$feed->hot = $feed->makeHotValue();
$feed->save(); $repository->setModel($feed);
$repository->images();
$repository->format($user->id);
$repository->previewComments(); $feed->has_collect = $feed->collected($user->id);
$feed->has_like = $feed->liked($user); return $feed;
});
}

最新文章

  1. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C. Ray Tracing
  2. svn:cleanup failed previous operation has not finished; run cleanup if it was interrupted
  3. Redis第二篇(Redis基本命令)
  4. Python爬虫--简单爬取图片
  5. php 远程下载木马
  6. 北大ACM(POJ1007-DNA Sorting)
  7. java常量池概念
  8. Scut 进阶:网络模型拓扑
  9. 将已有的工程项目添加到Xcode到Git管理中
  10. 3g 上网卡使用
  11. HDU 5194 DZY Loves Balls
  12. js代码性能优化的几个方法
  13. SQL Server性能优化——等待——SLEEP_BPROOL_FLUSH
  14. Java中nextLine()与其他next(),nextInt(),nextFloat()的区别
  15. linux Centos7下安装python3及pip3
  16. php不用正则表达式实现身份证号验证详解
  17. 字典树HihoCoder - 1014
  18. java算法面试题
  19. Spring资源加载基础ClassLoader
  20. plsql 表数据中文显示乱码(配置环境变量)

热门文章

  1. Java基础_0308:String类的常用方法
  2. 《Javascript高级程序设计》第六章笔记整理
  3. Coconuts HDU - 5925 (二维离散化求连通块的个数以及大小)
  4. Maven多模块项目管理小结
  5. 【NLP CS224N笔记】Lecture 1 - Introduction of NLP
  6. 20165231 2017-2018-2 《Java程序设计》第4周学习总结
  7. cei()、linspace()、arrange()、full()、eye()、empty()、random()
  8. 1.Python_字符串_常用办法总结
  9. 移植busybox构建最小根文件系统
  10. Switch 中参数的范围探讨