MarketingController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Channels\PushBearChannel;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\Marketing;
  6. use App\Notifications\Custom;
  7. use Illuminate\Http\Request;
  8. use Notification;
  9. use Response;
  10. class MarketingController extends Controller
  11. {
  12. // 邮件群发消息列表
  13. public function emailList(Request $request)
  14. {
  15. $status = $request->input('status');
  16. $query = Marketing::whereType(1);
  17. if (isset($status)) {
  18. $query->whereStatus($status);
  19. }
  20. return view('admin.marketing.emailList', ['emails' => $query->paginate(15)->appends($request->except('page'))]);
  21. }
  22. // 消息通道群发列表
  23. public function pushList(Request $request)
  24. {
  25. $status = $request->input('status');
  26. $query = Marketing::whereType(2);
  27. if (isset($status)) {
  28. $query->whereStatus($status);
  29. }
  30. return view('admin.marketing.pushList', ['pushes' => $query->paginate(15)->appends($request->except('page'))]);
  31. }
  32. // 添加推送消息
  33. public function addPushMarketing(Request $request)
  34. {
  35. $title = $request->input('title');
  36. $content = $request->input('content');
  37. if (! sysConfig('is_push_bear')) {
  38. return Response::json(['status' => 'fail', 'message' => '推送失败:请先启用并配置PushBear']);
  39. }
  40. Notification::send(PushBearChannel::class, new Custom($title, $content));
  41. return Response::json(['status' => 'success', 'message' => '推送成功']);
  42. }
  43. }