SendEmailsController.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. /**
  10. * SendEmailsController constructor.
  11. */
  12. public function __construct()
  13. {
  14. $this->middleware('auth')->except([]);
  15. }
  16. public function index()
  17. {
  18. $roles = Role::all();
  19. $emailEvents = MailEvent::query()->with('roles')->orderBy('id')->paginate();
  20. foreach ($emailEvents as $emailEvent) {
  21. $emailEvent->template = json_decode($emailEvent->template);
  22. $emailEvent->remark_show = true;
  23. $emailEvent->remark_edit = false;
  24. $emailEvent->template_show = true;
  25. $emailEvent->template_edit = false;
  26. $emailEvent->role_selected = '';
  27. }
  28. return view('maintenance.emails.index', compact('roles', 'emailEvents'));
  29. }
  30. public function addRole(Request $request)
  31. {
  32. $roleId = $request->roleId;
  33. $role = Role::find($roleId);
  34. $eventMailId = $request->eventMailId;
  35. if (MailEvent::query()->find($eventMailId)->roles()->where('roles.id', $roleId)->exists()) {
  36. return ['success' => false, 'data' => '角色已存在'];
  37. } else {
  38. MailEvent::query()->find($eventMailId)->roles()->attach($role->id);
  39. return ['success' => true, 'data' => ['role' => $role]];
  40. }
  41. }
  42. public function deleteRole(Request $request)
  43. {
  44. $roleId = $request->roleId;
  45. $role = Role::find($roleId);
  46. $eventMailId = $request->eventMailId;
  47. MailEvent::query()->find($eventMailId)->roles()->detach($role->id);
  48. return ['success' => true, 'data' => $role];
  49. }
  50. public function updateTemplate(Request $request)
  51. {
  52. $model = MailEvent::query()->find($request->id);
  53. $model->update([
  54. 'template' => $request->template,
  55. ]);
  56. return ['success' => true];
  57. }
  58. public function active(Request $request)
  59. {
  60. $model = MailEvent::query()->find($request->id);
  61. $model->update([
  62. 'is_active' => !$model->is_active,
  63. ]);
  64. return ['success' => true, 'data' => !$model->is_active];
  65. }
  66. public function updateRemark(Request $request)
  67. {
  68. $this->validate($request, [
  69. 'remark' => 'required|string',
  70. ]);
  71. $model = MailEvent::query()->find($request->id);
  72. $model->update([
  73. 'remark' => $request->remark,
  74. ]);
  75. return ['success' => true];
  76. }
  77. }