SendEmailsController.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. session()->flash('warning', '不能重复添加');
  30. return ['success' => false, 'message' => '角色已存在'];
  31. } else {
  32. MailEvent::query()->find($eventMailId)->roles()->attach($role->id);
  33. return ['success' => true, 'data' => ['role' => $role]];
  34. }
  35. }
  36. public function deleteRole(Request $request)
  37. {
  38. $roleId = $request->roleId;
  39. $role = Role::find($roleId);
  40. $eventMailId = $request->eventMailId;
  41. MailEvent::query()->find($eventMailId)->roles()->detach($role->id);
  42. return ['success' => true, 'data' => $role];
  43. }
  44. public function updateTemplate(Request $request)
  45. {
  46. $model = MailEvent::query()->find($request->id);
  47. $model->update([
  48. 'template' => $request->template,
  49. ]);
  50. return ['success' => true];
  51. }
  52. public function active(Request $request)
  53. {
  54. $model = MailEvent::query()->find($request->id);
  55. $model->update([
  56. 'is_active' => !$model->is_active,
  57. ]);
  58. return ['success' => true, 'data' => !$model->is_active];
  59. }
  60. public function updateRemark(Request $request)
  61. {
  62. $model = MailEvent::query()->find($request->id);
  63. $model->update([
  64. 'remark' => $request->remark,
  65. ]);
  66. return ['success' => true];
  67. }
  68. }