From 8075f3d221f60fcb01e97547deca7f10a84d0bfa Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Mon, 16 Oct 2023 14:48:21 +0800 Subject: [PATCH] pati --- app/Console/Commands/PatientRecordNotify.php | 33 +++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/app/Console/Commands/PatientRecordNotify.php b/app/Console/Commands/PatientRecordNotify.php index 4374933..6f3eaaf 100644 --- a/app/Console/Commands/PatientRecordNotify.php +++ b/app/Console/Commands/PatientRecordNotify.php @@ -3,7 +3,7 @@ namespace App\Console\Commands; use Illuminate\Console\Command; -use App\Models\{PatientRecord, UserSocialite}; +use App\Models\{PatientRecord, User, UserSocialite}; use Overtrue\LaravelWeChat\EasyWeChat; use Slowlyo\OwlAdmin\Models\AdminUser; use App\Enums\SocialiteType; @@ -30,7 +30,7 @@ class PatientRecordNotify extends Command public function handle() { $now = now(); - $list = PatientRecord::with(['patient.user']) + $list = PatientRecord::with(['patient', 'user']) ->where('is_notified', 0) ->whereNotNull('notify_user_id') ->whereNotNull('next_treat_at') @@ -50,6 +50,10 @@ class PatientRecordNotify extends Command ->where('type', SocialiteType::WxOfficial) ->whereIn('user_id', $list->pluck('notify_user_id')) ->get(); + $users = UserSocialite::where('user_type', (new AdminUser)->getMorphClass()) + ->where('type', SocialiteType::WxOfficial) + ->whereIn('user_id', $list->pluck('user_id')) + ->get(); foreach ($list as $item) { $adminUser = $adminUsers->firstWhere('user_id', $item->notify_user_id); if ($adminUser) { @@ -70,8 +74,29 @@ class PatientRecordNotify extends Command ] ]); if ($response->isFailed()) { - logger('病历记录: 通知, 模板消息发送, 失败', $response->toArray(false)); - continue; + logger('病历记录: 通知医师, 模板消息发送, 失败', $response->toArray(false)); + } + } + $user = $users->firstWhere('user_id', $item->user_id); + if ($user) { + $response = $api->postJson('/cgi-bin/message/template/send', [ + 'touser' => $user->openid, + 'template_id' => 'zdkOoIk7bfyzpW9Tuu-pxqh2no-93FCcqstFKLOTfu0', + 'url' => url('/client/pages/record/detail?id=' . $item->id), + 'data' => [ + 'thing1' => [ + 'value' => data_get($item->patient, 'name') + ], + 'time3' => [ + 'value' => $item->next_treat_at->format('Y年m月d日 H:i:s') + ], + 'phone_number6' => [ + 'value' => data_get($item->patient, 'phone') + ] + ] + ]); + if ($response->isFailed()) { + logger('病历记录: 通知用户, 模板消息发送, 失败', $response->toArray(false)); } } $item->update(['is_notified' => 1]);