$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']]); } //给教师发送消息 $msgInfo = $teacher_schedule_time->toArray(); $student_name = implode(',', array_column($student_info, 'student_name')); $send_teacher_data = [ 'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo', 'template_id' => 'gTtXWz35mjbtbOZdq6uNBIqy2_W-gu7F4H6s5N-vNAI', 'data' => [ 'time2' => [//上课时间 'value' => $teacher_schedule_time->en_start_time, 'color' => '#000000' ], 'thing1' => [//课程名称 'value' => $teacher_schedule_time->english_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' => self::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' => 'teacher', 'send_data' => json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 'msg_info' => json_encode($msgInfo, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 'send_result' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0, 'send_result_msg' => $result['msg'], ]); foreach ($student_info as $student) { $send_teacher_data = [ 'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo:发送人 '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' => self::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($msgInfo, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 'send_result' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0, 'send_result_msg' => $result['msg'], ]); } } catch (Exception $e) { } } /** * 上课时间 提前一天通知老师 * @return void */ public function classBeginMsgToTeacher() { try { $teacher_schedule_time = TeacherScheduleTime::where(['is_publish' => 1]) ->whereTime('start_time', '>=', date('Y-m-d 00:00:00', strtotime('+21 day'))) ->whereTime('start_time', '<=', date('Y-m-d 23:59:59', strtotime('+21 day'))) ->with(['teacherAttr', 'subject', 'studentSchedule']) ->select(); foreach ($teacher_schedule_time as $item) { $studentSchedule = $item->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')); $send_teacher_data = [ 'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo:发送人 'template_id' => 'yYw0jnlhjnq4AJ_CAlAghgGyV0bvbVHG-eV8TNC3REI', 'data' => [ 'thing8' => [//课程名称 'value' => $item->english_name, 'color' => '#000000' ], 'time5' => [//上课时间 'value' => $item->end_time, 'color' => '#000000' ], 'thing4' => [//任课教师 'value' => $item->teacherAttr->teacher_name, 'color' => '#000000' ], 'thing7' => [//学员姓名 'value' => $student_name, 'color' => '#000000' ] ], 'miniprogram' => [ ], "lang" => "zh_CN", ]; $result = (new WechatSubscriptService())->sendMsg($send_teacher_data); } } catch (Exception $e) { return [ 'code' => ResponseCode::FAIL, 'msg' => $e->getMessage() ]; } } /** * @desc 管理员人员作业审阅结果通知 * @param $subject_homework_id * @return array|void * @throws \GuzzleHttp\Exception\GuzzleException */ public function teacherPublishSubjectHomework($subject_homework_id) { try { $subject_homework = SubjectHomework::where(['id' => $subject_homework_id])->with(['teacher', 'subject'])->findOrEmpty(); $send_teacher_data = [ 'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo:发送人 'template_id' => 'OKLtn1L12ZrKsJczk1IRn_8kcQ4aKBmMsYsnjgAkkfE', 'data' => [ 'thing1' => [//作业名称 'value' => $subject_homework->english_name . '/' . date('m-d H:i', strtotime($subject_homework->start_time)), 'color' => '#000000' ], 'thing2' => [//教师姓名 'value' => $subject_homework->teacher_name, 'color' => '#000000' ] ], 'miniprogram' => [ ], "lang" => "zh_CN", ]; $result = (new WechatSubscriptService())->sendMsg($send_teacher_data); } catch (Exception $e) { return [ 'code' => ResponseCode::FAIL, 'msg' => $e->getMessage() ]; } } /** * @desc 老师上传作业后台管理员人员翻译过,重新上传通知学生 * @param $subject_homework_id * @return array|void * @throws \GuzzleHttp\Exception\GuzzleException */ public function uploadVersionSubjectHomeworkNotifyStudent($subject_homework_id) { try { $subject_homework = SubjectHomework::where(['id' => $subject_homework_id])->with(['teacher', 'subject'])->findOrEmpty(); //查找相同老师、相同课程、相同学生的下一节课 $teacher_schedule_time = TeacherScheduleTime::where(['id' => $subject_homework->teacher_schedule_time_id])->with(['studentSchedule'])->findOrEmpty(); print '
';
            print_r($teacher_schedule_time->toArray());
            die;


            if (!empty($subject_homework->homework_version_file_url)) {
                $send_teacher_data = [
                    'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo:发送人
                    'template_id' => 'OKLtn1L12ZrKsJczk1IRn_8kcQ4aKBmMsYsnjgAkkfE',
                    'data' => [
                        'thing6' => [//课程名称
                            'value' => $subject_homework->english_name . '/' . date('m-d H:i', strtotime($subject_homework->start_time)),
                            'color' => '#000000'
                        ],
                        'thing2' => [//作业名称
                            'value' => $subject_homework->teacher_name,
                            'color' => '#000000'
                        ],
                        'thing5' => [//批改老师
                            'value' => $subject_homework->teacher_name,
                            'color' => '#000000'
                        ],
                        'time3' => [//作业截止时间
                            'value' => $subject_homework->teacher_name,
                            'color' => '#000000'
                        ]
                    ],
                    'miniprogram' => [

                    ],
                    "lang" => "zh_CN",
                ];


                $result = (new WechatSubscriptService())->sendMsg($send_teacher_data);
            }


        } catch (Exception $e) {
            return [
                'code' => ResponseCode::FAIL,
                'msg' => $e->getMessage()
            ];
        }

    }


}