zoukankan      html  css  js  c++  java
  • follow

    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;
            });
        }
  • 相关阅读:
    Django组件——forms组件
    Django组件——分页器(paginator)
    Django和Ajax
    多表操作
    输入DStream和Receiver详解
    spark中streamingContext的使用详解
    spark与storm的对比
    spark1.5引进内置函数
    spark 分析sql内容再插入到sql表中
    spark之数据源之自动分区推断
  • 原文地址:https://www.cnblogs.com/sgm4231/p/10572810.html
Copyright © 2011-2022 走看看