公众号消息通知

This commit is contained in:
Dai 2024-08-19 22:48:14 +08:00
parent c6ad05e4ff
commit 2de9173d6d
4 changed files with 195 additions and 11 deletions

View File

@ -71,7 +71,12 @@ class SendMsgCronJobController extends BaseController
}
/**
* @desc 老师布置作业通知 教师上传课程作业,后台翻译件上传之后发送
* @param Request $request
* @return \support\Response
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadVersionSubjectHomeworkNotifyStudent(Request $request)
{
$res = (new SendMsgCronJobService())->uploadVersionSubjectHomeworkNotifyStudent(10);
@ -80,4 +85,42 @@ class SendMsgCronJobController extends BaseController
}
/**
* @desc 后台翻译后台 通知外教老师
* @param Request $request
* @return \support\Response
*/
public function studentUploadSubjectHomeworkNotifyTeacher(Request $request)
{
$res = (new SendMsgCronJobService())->studentUploadSubjectHomeworkNotifyTeacher(6);
return $this->json($res);
}
/**
* @desc 学生上课时间确定成功提醒
* @param Request $request
* @return \support\Response
*/
public function studentScheduleConfirmNotifyTeacher(Request $request)
{
$res = (new SendMsgCronJobService())->studentScheduleConfirmNotifyTeacher(84);
return $this->json($res);
}
/**
* @desc
* @param Request $request
* @return \support\Response
*/
public function alertTeacherSubmitFreeTime(Request $request)
{
$res = (new SendMsgCronJobService())->studentScheduleConfirmNotifyTeacher(84);
return $this->json($res);
}
}

View File

@ -41,7 +41,8 @@ class StudentHomework extends BaseModel
{
return $this->hasOne(Teacher::class, 'id', 'teacher_id')->bind([
'teacher_name',
'teacher_account' => 'account'
'teacher_account' => 'account',
'teacher_openid'=> 'openid'
]);
}

View File

@ -26,7 +26,11 @@ class StudentSchedule extends BaseModel
public function teacher()
{
return $this->hasOne(Teacher::class, 'id', 'teacher_id')->bind(['teacher_account' => 'account', 'teacher_name']);
return $this->hasOne(Teacher::class, 'id', 'teacher_id')->bind([
'teacher_account' => 'account',
'teacher_openid' => 'openid',
'teacher_name'
]);
}
public function subject()

View File

@ -4,6 +4,8 @@ namespace app\common\service;
use app\common\model\CronJob;
use app\common\model\Student;
use app\common\model\StudentHomework;
use app\common\model\StudentSchedule;
use app\common\model\SubjectHomework;
use app\common\model\TeacherScheduleTime;
use app\constant\ResponseCode;
@ -266,7 +268,7 @@ class SendMsgCronJobService
/**
* @desc 老师上传作业后台管理员人员翻译过,重新上传通知学生
* @desc 老师上传作业后台管理员人员翻译过,重新上传通知学生,课程作业通知
* @param $subject_homework_id
* @return array|void
* @throws \GuzzleHttp\Exception\GuzzleException
@ -280,22 +282,34 @@ class SendMsgCronJobService
//查找相同老师、相同课程、相同学生的下一节课
$teacher_schedule_time = TeacherScheduleTime::where(['id' => $subject_homework->teacher_schedule_time_id])->with(['studentSchedule'])->findOrEmpty();
print '<pre>';
print_r($teacher_schedule_time->toArray());
die;
//查找下次课程开始时间
$next_teacher_schedule_time = TeacherScheduleTime::where([
'teacher_id' => $teacher_schedule_time->teacher_id,
'subject_id' => $teacher_schedule_time->subject_id,
'is_publish' => 1
])
->whereTime('start_time', '>', $teacher_schedule_time->start_time)
->order('id asc')
->limit(1)
->findOrEmpty();
if (!$next_teacher_schedule_time->isEmpty()) {
$next_time = $next_teacher_schedule_time->start_time;
} else {
$next_time = '';//不能没有值
}
if (!empty($subject_homework->homework_version_file_url)) {
$send_teacher_data = [
'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo发送人
'template_id' => 'OKLtn1L12ZrKsJczk1IRn_8kcQ4aKBmMsYsnjgAkkfE',
'template_id' => 'ng-vuuY_hHM3N2fR3VCGdjGldOrwmzVVQzebRgkW4uY',
'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,
'value' => $subject_homework->english_name . '/' . date('m-d H:i', strtotime($subject_homework->start_time)),
'color' => '#000000'
],
'thing5' => [//批改老师
@ -303,7 +317,7 @@ class SendMsgCronJobService
'color' => '#000000'
],
'time3' => [//作业截止时间
'value' => $subject_homework->teacher_name,
'value' => $next_time,
'color' => '#000000'
]
],
@ -315,6 +329,8 @@ class SendMsgCronJobService
$result = (new WechatSubscriptService())->sendMsg($send_teacher_data);
//@todo:写入日志中
}
@ -328,4 +344,124 @@ class SendMsgCronJobService
}
/**
* @desc 学生完成上传作业,通知老师
* @param $request
* @return array
*/
public function studentUploadSubjectHomeworkNotifyTeacher($student_homework_id)
{
try {
$student_homework = StudentHomework::where(['id' => $student_homework_id])->with(['teacher', 'subject', 'student'])->findOrEmpty();
//获取教师openid
$send_teacher_data = [
'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo发送人
'template_id' => 'IYIMurENbyxkQ_axIsrkjOnfoURe4jOVpHU6zcGyksU',
'data' => [
'thing1' => [//课程名称
'value' => substr($student_homework->english_name . '/' . date('m-d H:i', strtotime($student_homework->en_start_time)), 0, 18) . '..',
'color' => '#000000'
],
'thing2' => [//作业名称
'value' => substr($student_homework->english_name . '/' . date('m-d H:i', strtotime($student_homework->en_start_time)), 0, 18) . '..',
'color' => '#000000'
],
'thing3' => [//批改老师
'value' => $student_homework->teacher_name,
'color' => '#000000'
],
'thing5' => [//学生
'value' => $student_homework->student_name,
'color' => '#000000'
],
'time4' => [//提交时间
'value' => $student_homework->created_at,
'color' => '#000000'
]
],
'miniprogram' => [
],
"lang" => "zh_CN",
];
$result = (new WechatSubscriptService())->sendMsg($send_teacher_data);
return [
'code' => ResponseCode::SUCCESS,
'data' => [],
'msg' => 'success'
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
public function studentScheduleConfirmNotifyTeacher($student_schedule_id)
{
try {
$student_schedule = StudentSchedule::where(['id'=>$student_schedule_id, 'is_publish'=>1])->with(['teacher', 'student', 'subject'])->findOrEmpty();
if($student_schedule->isEmpty()){
throw new Exception('未找到');
}
//@todo日志
$send_teacher_data = [
'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo发送人
'template_id' => '9zKhl4mYHNcz2jW8MGEtfZXU2M3slaIers9-NCpY4Xc',
'data' => [
'time3' => [//上课时间
'value' => $student_schedule->en_start_time,
'color' => '#000000'
],
'thing2' => [//课程名称
'value' => $student_schedule->english_name,
'color' => '#000000'
],
'thing4' => [//上课老师
'value' => $student_schedule->teacher_name,
'color' => '#000000'
],
'thing1' => [//学生名称
'value' => $student_schedule->student_name,
'color' => '#000000'
]
],
'miniprogram' => [
],
"lang" => "zh_CN",
];
$result = (new WechatSubscriptService())->sendMsg($send_teacher_data);
//@todo添加日志
return [
'code' => ResponseCode::SUCCESS,
'data' => [],
'msg' => 'success'
];
}catch (Exception $e){
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
}