MarketingController.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. $query = Marketing::whereType(1);
  16. $request->whenFilled('status', function ($value) use ($query) {
  17. $query->whereStatus($value);
  18. });
  19. return view('admin.marketing.emailList', ['emails' => $query->paginate(15)->appends($request->except('page'))]);
  20. }
  21. // 消息通道群发列表
  22. public function pushList(Request $request)
  23. {
  24. $query = Marketing::whereType(2);
  25. $request->whenFilled('status', function ($value) use ($query) {
  26. $query->whereStatus($value);
  27. });
  28. return view('admin.marketing.pushList', ['pushes' => $query->paginate(15)->appends($request->except('page'))]);
  29. }
  30. // 添加推送消息
  31. public function addPushMarketing(Request $request)
  32. {
  33. $title = $request->input('title');
  34. $content = $request->input('content');
  35. if (! sysConfig('is_push_bear')) {
  36. return Response::json(['status' => 'fail', 'message' => '推送失败:请先启用并配置PushBear']);
  37. }
  38. Notification::send(PushBearChannel::class, new Custom($title, $content));
  39. return Response::json(['status' => 'success', 'message' => '推送成功']);
  40. }
  41. }