/** * Execute the console command. * 该任务具体的执行代码, 这边实现定时发邮件 * * @return mixed */ public function handle() { $issue = Issue::published()->latest('issue')->pluck('issue'); $issueArticles = Issue::published()->latest()->first()->articles->groupBy('category_id'); $recommendId = Category::recommend()->pluck('id'); $otherId = Category::other()->pluck('id'); $recommArticles = []; $normalArticles = collect(); // 创建一个新集合 $otherArticles = []; foreach ($issueArticles as $key => $value) { if ($key == $recommendId) { // 推荐分类文章 $recommArticles = $value; } elseif ($key == $otherId) { // 其他分类文章 $otherArticles = $value; } else { $normalArticles = $normalArticles->merge($value); } } // 把推荐分类文章放在集合第一个 其他分类文章放在集合最后一个 $articles = collect(); $articles = $articles->merge($recommArticles)->merge($normalArticles)->merge($otherArticles)->groupBy('category_id'); $users = Subscribe::where('is_confirmed', 1)->get(); foreach ($users as $user) { $this->dispatch(new SendIssueEmail($user, $issue, $articles)); // 推送到队列 } }