agent_id)->where('status', 1) ->orderBy('sort')->orderBy('id', 'DESC')->limit(10)->get(['title','url']); # 公告 $notice = Notice::where('agent_id', $this->agent_id)->limit(10)->get(['id', 'title', 'updated_at']); # 我的频道 if ($this->user_id) { $channel_ids = UserChannel::where('user_id', $this->user_id)->value('channels'); //如果不存在则存入初始数据 if (!$channel_ids) { $channel_ids = Channel::where([ ['agent_id', '=', $this->agent_id], ['pid', '<>', 0], ]) ->orderBy('id') ->limit(8) ->pluck('id') ->toArray(); //存入user_channel UserChannel::where('user_id', $this->user_id) ->insert([ 'user_id' => $this->user_id, 'channels' => json_encode($channel_ids) ]); } $my_channels = Channel::where('agent_id', $this->agent_id) ->whereIn('id', $channel_ids) ->get(['id', 'name', 'icon']); } else { $my_channels = Channel::where('agent_id', $this->agent_id) ->where('pid', '<>', 0) ->orderBy('id') ->limit(8) ->get(['id', 'name', 'icon']); } # 专题列表 $special = Special::query() ->where('agent_id', $this->agent_id) ->orderBy('sort') ->orderBy('id') ->get(['id', 'picture_ad']); # 人气爆款 $hots = AgentProduct::query() ->where('agent_id', $this->agent_id) ->select('id', 'sale', 'product_id', 'price', 'original_price') //必须查询product_id才能with ->with('product:id,title,pictures') //必须查询ID才能正常查询 ->limit(6)->get(); return $this->success([ 'slide' => $slide, 'notice' => $notice, 'my_channels' => $my_channels, 'special' => $special, 'hots' => $hots, ]); } }