From 2af0578094b952e9cbe0c47bb9f4de9b8102ed88 Mon Sep 17 00:00:00 2001 From: Dai Date: Sun, 29 Sep 2024 15:55:45 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=AD=A6=E7=94=9F=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=8F=91=E5=B8=83=EF=BC=8C=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=8F=91=E9=80=81=E7=BB=99=E5=AE=B6=E9=95=BF=E5=92=8C=E6=95=99?= =?UTF-8?q?=E5=B8=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/SendMsgCronJobService.php | 110 ++++++++++++++++++ .../controller/StudentScheduleController.php | 1 + .../controller/sendMsgNotifyController.php | 110 +++++++++++++++++- plugin/admin/app/view/cron-job/index.html | 44 +++---- 4 files changed, 243 insertions(+), 22 deletions(-) diff --git a/app/common/service/SendMsgCronJobService.php b/app/common/service/SendMsgCronJobService.php index 0e1fc21..2a5bde5 100644 --- a/app/common/service/SendMsgCronJobService.php +++ b/app/common/service/SendMsgCronJobService.php @@ -5,6 +5,7 @@ namespace app\common\service; use app\common\model\CronJob; use app\common\model\Student; use app\common\model\StudentHomework; +use app\common\model\StudentParent; use app\common\model\StudentSchedule; use app\common\model\SubjectHomework; use app\common\model\Teacher; @@ -17,6 +18,9 @@ class SendMsgCronJobService const TEACHER_SCHEDULE_TIME_PUBLISH_TEACHER = 'teacher_schedule_time_publish_to_teacher'; const TEACHER_SCHEDULE_TIME_PUBLISH_STUDENT = 'teacher_schedule_time_publish_to_student'; + const TEACHER_SCHEDULE_TIME_PUBLISH_PARENTS = 'teacher_schedule_time_publish_to_parent'; +// const TEACHER_SCHEDULE_TIME_PUBLISH_TEACHER = 'teacher_schedule_time_publish_to_teacher'; + /** * 通知类型 @@ -208,6 +212,112 @@ class SendMsgCronJobService 'send_result_msg' => $result['msg'], ]); + + //查找学生家长,同步发送消息给家长 + $parents = StudentParent::where(['id' => $student['parent_id']])->findOrEmpty(); + if (!$parents->isEmpty()) { + + $send_teacher_data = [ + 'touser' => $parents['openid'], + 'template_id' => 'gTtXWz35mjbtbOZdq6uNBIqy2_W-gu7F4H6s5N-vNAI', + 'data' => [ + 'time2' => [//上课时间 + 'value' => $teacher_schedule_time->start_time, + 'color' => '#000000' + ], + 'thing1' => [//课程名称 + 'value' => $teacher_schedule_time->subject_name, + 'color' => '#000000' + ], + 'thing5' => [//上课老师 + 'value' => $teacher_schedule_time->teacherAttr->teacher_name, + 'color' => '#000000' + ], + 'thing4' => [//学员姓名 + 'value' => $student_name, + 'color' => '#000000' + ] + ], + 'miniprogram' => [ + + ], + "lang" => "zh_CN", + ]; + $result = (new WechatSubscriptService())->sendMsg($send_teacher_data); + + CronJob::create([ + 'msg_type' => SendMsgCronJobService::TEACHER_SCHEDULE_TIME_PUBLISH_PARENTS, + 'teacher_id' => $teacher_schedule_time->teacher_id, + 'subject_id' => $teacher_schedule_time->subject_id, + 'student_id' => '', + 'teacher_schedule_time_id' => $teacher_schedule_time->id, + 'time' => $teacher_schedule_time->time, + 'en_time' => $teacher_schedule_time->en_time, + 'start_time' => $teacher_schedule_time->start_time, + 'end_time' => $teacher_schedule_time->end_time, + 'en_start_time' => $teacher_schedule_time->en_start_time, + 'en_end_time' => $teacher_schedule_time->en_end_time, + 'send_role' => 'parent', + 'send_data' => json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'msg_info' => json_encode($teacher_schedule_time->toArray(), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'send_result' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0, + 'send_result_msg' => $result['msg'], + ]); + } + + if (isset($teacher_schedule_time['teacherAttr']) && !empty($teacher_schedule_time['teacherAttr']['openid'])) { + //发送给教师 + $send_teacher_data = [ + 'touser' => $teacher_schedule_time['teacherAttr']['openid'], + 'template_id' => 'gTtXWz35mjbtbOZdq6uNBIqy2_W-gu7F4H6s5N-vNAI', + 'data' => [ + 'time2' => [//上课时间 + 'value' => $teacher_schedule_time->start_time, + 'color' => '#000000' + ], + 'thing1' => [//课程名称 + 'value' => $teacher_schedule_time->subject_name, + 'color' => '#000000' + ], + 'thing5' => [//上课老师 + 'value' => $teacher_schedule_time->teacherAttr->teacher_name, + 'color' => '#000000' + ], + 'thing4' => [//学员姓名 + 'value' => $student_name, + 'color' => '#000000' + ] + ], + 'miniprogram' => [ + + ], + "lang" => "zh_CN", + ]; + $result = (new WechatSubscriptService())->sendMsg($send_teacher_data); + + CronJob::create([ + 'msg_type' => SendMsgCronJobService::TEACHER_SCHEDULE_TIME_PUBLISH_TEACHER, + 'teacher_id' => $teacher_schedule_time->teacher_id, + 'subject_id' => $teacher_schedule_time->subject_id, + 'student_id' => '', + 'teacher_schedule_time_id' => $teacher_schedule_time->id, + 'time' => $teacher_schedule_time->time, + 'en_time' => $teacher_schedule_time->en_time, + 'start_time' => $teacher_schedule_time->start_time, + 'end_time' => $teacher_schedule_time->end_time, + 'en_start_time' => $teacher_schedule_time->en_start_time, + 'en_end_time' => $teacher_schedule_time->en_end_time, + 'send_role' => 'student', + 'send_data' => json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'msg_info' => json_encode($teacher_schedule_time->toArray(), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'send_result' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0, + 'send_result_msg' => $result['msg'], + ]); + + } + + + } } catch (Exception $e) { diff --git a/plugin/admin/app/controller/StudentScheduleController.php b/plugin/admin/app/controller/StudentScheduleController.php index 47b18f6..fbf9f45 100644 --- a/plugin/admin/app/controller/StudentScheduleController.php +++ b/plugin/admin/app/controller/StudentScheduleController.php @@ -157,6 +157,7 @@ class StudentScheduleController extends Crud $data = $request->post(); if (isset($data['is_publish']) && $data['is_publish']) { + //发送消息给学生 $student_schedule = \app\common\model\StudentSchedule::where(['id' => $data['id']])->find(); (new SendMsgCronJobService())->teacherScheduleTimePublishMsgToStudent($student_schedule->teacher_schedule_time_id); } diff --git a/plugin/admin/app/controller/sendMsgNotifyController.php b/plugin/admin/app/controller/sendMsgNotifyController.php index 82f1a0c..b32f720 100644 --- a/plugin/admin/app/controller/sendMsgNotifyController.php +++ b/plugin/admin/app/controller/sendMsgNotifyController.php @@ -4,6 +4,7 @@ namespace plugin\admin\app\controller; use app\common\model\CronJob; use app\common\model\Student; +use app\common\model\StudentParent; use app\common\model\TeacherScheduleTime; use app\common\service\SendMsgCronJobService; use app\common\service\WechatSubscriptService; @@ -35,6 +36,7 @@ class sendMsgNotifyController extends Crud throw new Exception('未找到课程分配的学生'); } + $student_info = []; foreach ($studentSchedule as $student) { if (!$student['is_publish']) { @@ -42,7 +44,7 @@ class sendMsgNotifyController extends Crud } $student = Student::where(['id' => $student['student_id']])->findOrEmpty(); - array_push($student_info, ['id' => $student['id'], 'student_name' => $student['student_name'], 'openid' => $student['openid']]); + array_push($student_info, ['id' => $student['id'], 'student_name' => $student['student_name'], 'openid' => $student['openid'], 'parent_id' => $student['parent_id']]); } $student_name = implode(',', array_column($student_info, 'student_name')); @@ -97,6 +99,110 @@ class sendMsgNotifyController extends Crud 'send_result_msg' => $result['msg'], ]); + //查找学生家长,同步发送消息给家长 + $parents = StudentParent::where(['id' => $student['parent_id']])->findOrEmpty(); + if (!$parents->isEmpty()) { + + $send_teacher_data = [ + 'touser' => $parents['openid'], + 'template_id' => 'gTtXWz35mjbtbOZdq6uNBIqy2_W-gu7F4H6s5N-vNAI', + 'data' => [ + 'time2' => [//上课时间 + 'value' => $teacher_schedule_time->start_time, + 'color' => '#000000' + ], + 'thing1' => [//课程名称 + 'value' => $teacher_schedule_time->subject_name, + 'color' => '#000000' + ], + 'thing5' => [//上课老师 + 'value' => $teacher_schedule_time->teacherAttr->teacher_name, + 'color' => '#000000' + ], + 'thing4' => [//学员姓名 + 'value' => $student_name, + 'color' => '#000000' + ] + ], + 'miniprogram' => [ + + ], + "lang" => "zh_CN", + ]; + $result = (new WechatSubscriptService())->sendMsg($send_teacher_data); + + CronJob::create([ + 'msg_type' => SendMsgCronJobService::TEACHER_SCHEDULE_TIME_PUBLISH_PARENTS, + 'teacher_id' => $teacher_schedule_time->teacher_id, + 'subject_id' => $teacher_schedule_time->subject_id, + 'student_id' => '', + 'teacher_schedule_time_id' => $teacher_schedule_time->id, + 'time' => $teacher_schedule_time->time, + 'en_time' => $teacher_schedule_time->en_time, + 'start_time' => $teacher_schedule_time->start_time, + 'end_time' => $teacher_schedule_time->end_time, + 'en_start_time' => $teacher_schedule_time->en_start_time, + 'en_end_time' => $teacher_schedule_time->en_end_time, + 'send_role' => 'parent', + 'send_data' => json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'msg_info' => json_encode($teacher_schedule_time->toArray(), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'send_result' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0, + 'send_result_msg' => $result['msg'], + ]); + } + + if (isset($teacher_schedule_time['teacherAttr']) && !empty($teacher_schedule_time['teacherAttr']['openid'])) { + //发送给教师 + $send_teacher_data = [ + 'touser' => $student['openid'], + 'template_id' => 'gTtXWz35mjbtbOZdq6uNBIqy2_W-gu7F4H6s5N-vNAI', + 'data' => [ + 'time2' => [//上课时间 + 'value' => $teacher_schedule_time->start_time, + 'color' => '#000000' + ], + 'thing1' => [//课程名称 + 'value' => $teacher_schedule_time->subject_name, + 'color' => '#000000' + ], + 'thing5' => [//上课老师 + 'value' => $teacher_schedule_time->teacherAttr->teacher_name, + 'color' => '#000000' + ], + 'thing4' => [//学员姓名 + 'value' => $student_name, + 'color' => '#000000' + ] + ], + 'miniprogram' => [ + + ], + "lang" => "zh_CN", + ]; + $result = (new WechatSubscriptService())->sendMsg($send_teacher_data); + + CronJob::create([ + 'msg_type' => SendMsgCronJobService::TEACHER_SCHEDULE_TIME_PUBLISH_STUDENT, + 'teacher_id' => $teacher_schedule_time->teacher_id, + 'subject_id' => $teacher_schedule_time->subject_id, + 'student_id' => '', + 'teacher_schedule_time_id' => $teacher_schedule_time->id, + 'time' => $teacher_schedule_time->time, + 'en_time' => $teacher_schedule_time->en_time, + 'start_time' => $teacher_schedule_time->start_time, + 'end_time' => $teacher_schedule_time->end_time, + 'en_start_time' => $teacher_schedule_time->en_start_time, + 'en_end_time' => $teacher_schedule_time->en_end_time, + 'send_role' => 'student', + 'send_data' => json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'msg_info' => json_encode($teacher_schedule_time->toArray(), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'send_result' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0, + 'send_result_msg' => $result['msg'], + ]); + + } + + } return json([ @@ -112,4 +218,4 @@ class sendMsgNotifyController extends Crud } } -} \ No newline at end of file +} diff --git a/plugin/admin/app/view/cron-job/index.html b/plugin/admin/app/view/cron-job/index.html index ead1ba3..1a4bb96 100644 --- a/plugin/admin/app/view/cron-job/index.html +++ b/plugin/admin/app/view/cron-job/index.html @@ -8,68 +8,68 @@ - +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
@@ -112,6 +112,8 @@ 排课结果通知教师 {{# }else if(d.msg_type == 'teacher_schedule_time_publish_to_student'){ }} 排课结果通知学生 + {{# }else if(d.msg_type == 'teacher_schedule_time_publish_to_parent'){ }} + 排课结果通知家长 {{# }else if(d.msg_type == 'class_begin_notify_teacher'){ }} 课程开始提醒教师 {{# }else if(d.msg_type == 'subject_upload_notify_admin'){ }} @@ -137,6 +139,8 @@ 学生 {{# }else if(d.send_role == 'admin'){ }} 管理员 + {{# }else if(d.send_role == 'parent'){ }} + 家长 {{# }else{ }} 未知 {{# } }} @@ -223,7 +227,7 @@ - +