SendEmailsController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\MailEvent;
  4. use App\Role;
  5. use Illuminate\Http\Request;
  6. class SendEmailsController extends Controller
  7. {
  8. //
  9. public function index()
  10. {
  11. $roles = Role::all();
  12. $emailEvents = MailEvent::query()->with('roles')->orderBy('id')->paginate();
  13. foreach ($emailEvents as $emailEvent) {
  14. $emailEvent->template = json_decode($emailEvent->template);
  15. $emailEvent->remark_show = true;
  16. $emailEvent->remark_edit = false;
  17. $emailEvent->template_show = true;
  18. $emailEvent->template_edit = false;
  19. $emailEvent->role_selected = '';
  20. }
  21. return view('maintenance.emails.index', compact('roles', 'emailEvents'));
  22. }
  23. public function addRole(Request $request)
  24. {
  25. $roleId = $request->roleId;
  26. $role = Role::find($roleId);
  27. $eventMailId = $request->eventMailId;
  28. if (MailEvent::query()->find($eventMailId)->roles()->where('roles.id', $roleId)->exists()) {
  29. return ['success' => false, 'data' => '角色已存在'];
  30. } else {
  31. MailEvent::query()->find($eventMailId)->roles()->attach($role->id);
  32. return ['success' => true, 'data' => ['role' => $role]];
  33. }
  34. }
  35. public function deleteRole(Request $request)
  36. {
  37. $roleId = $request->roleId;
  38. $role = Role::find($roleId);
  39. $eventMailId = $request->eventMailId;
  40. MailEvent::query()->find($eventMailId)->roles()->detach($role->id);
  41. return ['success' => true, 'data' => $role];
  42. }
  43. public function updateTemplate(Request $request)
  44. {
  45. $model = MailEvent::query()->find($request->id);
  46. $model->update([
  47. 'template' => $request->template,
  48. ]);
  49. return ['success' => true];
  50. }
  51. public function active(Request $request)
  52. {
  53. $model = MailEvent::query()->find($request->id);
  54. $model->update([
  55. 'is_active' => !$model->is_active,
  56. ]);
  57. return ['success' => true, 'data' => !$model->is_active];
  58. }
  59. public function updateRemark(Request $request)
  60. {
  61. $model = MailEvent::query()->find($request->id);
  62. $model->update([
  63. 'remark' => $request->remark,
  64. ]);
  65. return ['success' => true];
  66. }
  67. }