MailController.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Requests\Admin\MailSend;
  4. use App\Services\UserService;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. use App\Jobs\SendEmail;
  8. class MailController extends Controller
  9. {
  10. public function send(MailSend $request)
  11. {
  12. $userService = new UserService();
  13. $users = [];
  14. switch ($request->input('type')) {
  15. case 1: $users = $userService->getAllUsers();
  16. break;
  17. case 2: $users = $userService->getUsersByIds($request->input('receiver'));
  18. break;
  19. // available users
  20. case 3: $users = $userService->getAvailableUsers();
  21. break;
  22. // un available users
  23. case 4: $users = $userService->getUnAvailbaleUsers();
  24. break;
  25. }
  26. foreach ($users as $user) {
  27. SendEmail::dispatch([
  28. 'email' => $user->email,
  29. 'subject' => $request->input('subject'),
  30. 'template_name' => 'mail.sendEmailCustom',
  31. 'template_value' => [
  32. 'name' => config('v2board.app_name', 'V2Board'),
  33. 'url' => config('v2board.app_url'),
  34. 'content' => $request->input('content')
  35. ]
  36. ])->onQueue('other_mail');
  37. }
  38. return response([
  39. 'data' => true
  40. ]);
  41. }
  42. }