diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index b3d4dd0..6e000bc 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -67,13 +67,18 @@ class VisitController extends CommonController $messages = [ 'name.required' => '名称必填', 'visit_area_id.required' => '区域id必填', - 'accept_admin_id.required' => '接待人必填' + 'accept_admin_id.required' => '接待人必填', + 'accompany_id.required' => '陪同人必填', + 'date.required' => '到访日期必填', + 'mobile.required' => '电话必填', ]; $validator = Validator::make($all, [ 'name' => 'required', 'visit_area_id' => 'required', 'accept_admin_id' => 'required', - 'accompany_id' => 'required' + 'accompany_id' => 'required', + 'date' => 'required', + 'mobile' => 'required', ], $messages); if ($validator->fails()) { return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); @@ -136,6 +141,12 @@ class VisitController extends CommonController } VisitLog::add('', $this->getUser(), $model->id, isset($all['id']) ? '更新拜访记录' : '新增拜访记录'); DB::commit(); + // 短信通知被访人 + $vars = ['date' => $all['date'], 'name' => $all['name']]; + $template_id = 'Sjwgv1'; + // 被访人信息 + $acceptAdmin = Admin::find($all['accept_admin_id']); + sms($acceptAdmin->mobile, $vars, $template_id); // 邮件通知第一个审核人 VisitAudit::emailNextAudit($model, -1); } diff --git a/app/Notifications/AuditEmailNotify.php b/app/Notifications/AuditEmailNotify.php index 23217f2..2fda332 100644 --- a/app/Notifications/AuditEmailNotify.php +++ b/app/Notifications/AuditEmailNotify.php @@ -50,21 +50,29 @@ class AuditEmailNotify extends Notification if ($this->isFirstAudit) { // 第一个审核人的邮件 return (new MailMessage) + ->from(config('mail.from.address'), 'Getinge Suzhou HR') ->subject('新的拜访审核通知 - ' . $visitData['name']) ->greeting('您好 ' . $notifiable->name . ',') ->line('您有一个新的拜访申请需要审核,访客 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 到访。') ->line('访客联系电话:' . $visitData['mobile']) ->line('拜访事由:' . ($visitData['reason'] ?? '无')) - ->line('请及时审核此拜访申请。'); + ->line('请及时审核此拜访申请。') + ->salutation('') + ->line('Regards') + ->line('Getinge Suzhou HR'); } else { // 后续审核人的邮件 return (new MailMessage) + ->from(config('mail.from.address'), 'Getinge Suzhou HR') ->subject('拜访审核流转通知 - ' . $visitData['name']) ->greeting('您好 ' . $notifiable->name . ',') ->line('拜访申请 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 的审核已流转到您这里,上一级审核人:' . ($visitData['previous_admin'] ?? '') . '。') ->line('访客联系电话:' . $visitData['mobile']) ->line('拜访事由:' . ($visitData['reason'] ?? '无')) - ->line('请及时处理此审核流转。'); + ->line('请及时处理此审核流转。') + ->salutation('') + ->line('Regards') + ->line('Getinge Suzhou HR'); } } } diff --git a/app/Notifications/AuditResultEmailNotify.php b/app/Notifications/AuditResultEmailNotify.php index 5f05f0d..a7790a3 100644 --- a/app/Notifications/AuditResultEmailNotify.php +++ b/app/Notifications/AuditResultEmailNotify.php @@ -51,22 +51,30 @@ class AuditResultEmailNotify extends Notification if ($auditResult === '通过') { // 审核通过的邮件 return (new MailMessage) + ->from(config('mail.from.address'), 'Getinge Suzhou HR') ->subject('拜访申请审核通过通知 - ' . $visitData['name']) ->greeting('您好 ' . $visitData['visitor_name'] . ',') ->line('您的拜访申请已审核通过,预约于 ' . $visitData['date'] . ' 到访。') ->line('被访人:' . $visitData['accept_admin_name']) ->line('公司名称:' . $visitData['company_name']) - ->line('请按时到访,如有疑问请联系被访人。'); + ->line('请按时到访,如有疑问请联系被访人。') + ->salutation('') + ->line('Regards') + ->line('Getinge Suzhou HR'); } else { // 审核驳回的邮件 return (new MailMessage) + ->from(config('mail.from.address'), 'Getinge Suzhou HR') ->subject('拜访申请审核驳回通知 - ' . $visitData['name']) ->greeting('您好 ' . $visitData['visitor_name'] . ',') ->line('很抱歉,您的拜访申请未通过审核。') ->line('预约日期:' . $visitData['date']) ->line('被访人:' . $visitData['accept_admin_name']) ->line('公司名称:' . $visitData['company_name']) - ->line('如有疑问,请联系被访人或重新提交申请。'); + ->line('如有疑问,请联系被访人或重新提交申请。') + ->salutation('') + ->line('Regards') + ->line('Getinge Suzhou HR'); } } } diff --git a/app/Notifications/CancelEmailNotify.php b/app/Notifications/CancelEmailNotify.php index 03cb2b2..91e1456 100644 --- a/app/Notifications/CancelEmailNotify.php +++ b/app/Notifications/CancelEmailNotify.php @@ -45,12 +45,16 @@ class CancelEmailNotify extends Notification $visitData = $this->visitData; return (new MailMessage) + ->from(config('mail.from.address'), 'Getinge Suzhou HR') ->subject('拜访预约取消通知 - ' . $visitData['name']) ->greeting('您好 ' . $notifiable->name . ',') ->line('访客 ' . $visitData['name'] . ' 原预约于 ' . $visitData['date'] . ' 的拜访已取消。') ->line('访客联系电话:' . $visitData['mobile']) ->line('拜访事由:' . ($visitData['reason'] ?? '无')) - ->line('如有疑问,请联系访客确认。'); + ->line('如有疑问,请联系访客确认。') + ->salutation('') + ->line('Regards') + ->line('Getinge Suzhou HR'); } } diff --git a/app/Notifications/EmailNotify.php b/app/Notifications/EmailNotify.php index d0ab372..5c1e34f 100644 --- a/app/Notifications/EmailNotify.php +++ b/app/Notifications/EmailNotify.php @@ -44,8 +44,12 @@ class EmailNotify extends Notification public function toMail($notifiable) { return (new MailMessage) + ->from(config('mail.from.address'), 'Getinge Suzhou HR') ->subject($notifiable->title) - ->line($notifiable->content); + ->line($notifiable->content) + ->salutation('') + ->line('Regards') + ->line('Getinge Suzhou HR'); } /** diff --git a/app/Notifications/VisitEmailNotify.php b/app/Notifications/VisitEmailNotify.php index 48bb41d..5ff79f1 100644 --- a/app/Notifications/VisitEmailNotify.php +++ b/app/Notifications/VisitEmailNotify.php @@ -45,11 +45,15 @@ class VisitEmailNotify extends Notification $visitData = $this->visitData; return (new MailMessage) + ->from(config('mail.from.address'), 'Getinge Suzhou HR') ->subject('新的拜访预约通知 - ' . $visitData['name']) ->greeting('您好 ' . $notifiable->name . ',') ->line('您有一个新的拜访预约,访客 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 到访。') ->line('访客联系电话:' . $visitData['mobile']) ->line('拜访事由:' . ($visitData['reason'] ?? '无')) - ->line('请及时处理此拜访预约。'); + ->line('请及时处理此拜访预约。') + ->salutation('') + ->line('Regards') + ->line('Getinge Suzhou HR'); } } diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php new file mode 100644 index 0000000..423d27c --- /dev/null +++ b/resources/views/vendor/notifications/email.blade.php @@ -0,0 +1,55 @@ + +{{-- Greeting --}} +@if (! empty($greeting)) +# {{ $greeting }} +@else +@if ($level === 'error') +# @lang('Whoops!') +@else +# @lang('Hello!') +@endif +@endif + +{{-- Intro Lines --}} +@foreach ($introLines as $line) +{{ $line }} + +@endforeach + +{{-- Action Button --}} +@isset($actionText) + $level, + default => 'primary', + }; +?> + +{{ $actionText }} + +@endisset + +{{-- Outro Lines --}} +@foreach ($outroLines as $line) +{{ $line }} + +@endforeach + +{{-- Salutation --}} +@if (! empty($salutation)) +{{ $salutation }} +@endif + +{{-- Subcopy --}} +@isset($actionText) + +@lang( + "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\n". + 'into your web browser:', + [ + 'actionText' => $actionText, + ] +) [{{ $displayableActionUrl }}]({{ $actionUrl }}) + +@endisset +