From 1393de1ddbb81ef6f5f83f3eac127d592805ebc3 Mon Sep 17 00:00:00 2001 From: Dai Date: Fri, 13 Sep 2024 22:26:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sendMsgNotifyController.php | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 plugin/admin/app/controller/sendMsgNotifyController.php diff --git a/plugin/admin/app/controller/sendMsgNotifyController.php b/plugin/admin/app/controller/sendMsgNotifyController.php new file mode 100644 index 0000000..82f1a0c --- /dev/null +++ b/plugin/admin/app/controller/sendMsgNotifyController.php @@ -0,0 +1,115 @@ +post('id'); + $teacher_schedule_time = TeacherScheduleTime::where(['id' => $teacher_schedule_time_id])->with(['teacherAttr', 'subject', 'studentSchedule']) + ->findOrEmpty(); + + if ($teacher_schedule_time->isEmpty()) { + throw new Exception('教师排课不存在'); + } + $studentSchedule = $teacher_schedule_time->studentSchedule->toArray(); + if (empty($studentSchedule)) { + throw new Exception('未找到课程分配的学生'); + } + + $student_info = []; + foreach ($studentSchedule as $student) { + if (!$student['is_publish']) { +// throw new Exception($student['student_name'] . '的排课未发布'); + } + + $student = Student::where(['id' => $student['student_id']])->findOrEmpty(); + array_push($student_info, ['id' => $student['id'], 'student_name' => $student['student_name'], 'openid' => $student['openid']]); + } + + $student_name = implode(',', array_column($student_info, 'student_name')); + + foreach ($student_info as $student) { + + + $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([ + 'code' => ResponseCode::WEB_API_SUCCESS, + 'msg' => $result['msg'] + ]); + + } catch (Exception $e) { + return json([ + 'code' => ResponseCode::WEB_API_FAIL, + 'msg' => $e->getMessage() + ]); + } + } + +} \ No newline at end of file