公众号消息通知

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) public function uploadVersionSubjectHomeworkNotifyStudent(Request $request)
{ {
$res = (new SendMsgCronJobService())->uploadVersionSubjectHomeworkNotifyStudent(10); $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([ return $this->hasOne(Teacher::class, 'id', 'teacher_id')->bind([
'teacher_name', 'teacher_name',
'teacher_account' => 'account' 'teacher_account' => 'account',
'teacher_openid'=> 'openid'
]); ]);
} }

View File

@ -26,7 +26,11 @@ class StudentSchedule extends BaseModel
public function teacher() 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() public function subject()

View File

@ -4,6 +4,8 @@ namespace app\common\service;
use app\common\model\CronJob; use app\common\model\CronJob;
use app\common\model\Student; use app\common\model\Student;
use app\common\model\StudentHomework;
use app\common\model\StudentSchedule;
use app\common\model\SubjectHomework; use app\common\model\SubjectHomework;
use app\common\model\TeacherScheduleTime; use app\common\model\TeacherScheduleTime;
use app\constant\ResponseCode; use app\constant\ResponseCode;
@ -266,7 +268,7 @@ class SendMsgCronJobService
/** /**
* @desc 老师上传作业后台管理员人员翻译过,重新上传通知学生 * @desc 老师上传作业后台管理员人员翻译过,重新上传通知学生,课程作业通知
* @param $subject_homework_id * @param $subject_homework_id
* @return array|void * @return array|void
* @throws \GuzzleHttp\Exception\GuzzleException * @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(); $teacher_schedule_time = TeacherScheduleTime::where(['id' => $subject_homework->teacher_schedule_time_id])->with(['studentSchedule'])->findOrEmpty();
print '<pre>'; //查找下次课程开始时间
print_r($teacher_schedule_time->toArray()); $next_teacher_schedule_time = TeacherScheduleTime::where([
die; '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)) { if (!empty($subject_homework->homework_version_file_url)) {
$send_teacher_data = [ $send_teacher_data = [
'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo发送人 'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo发送人
'template_id' => 'OKLtn1L12ZrKsJczk1IRn_8kcQ4aKBmMsYsnjgAkkfE', 'template_id' => 'ng-vuuY_hHM3N2fR3VCGdjGldOrwmzVVQzebRgkW4uY',
'data' => [ 'data' => [
'thing6' => [//课程名称 'thing6' => [//课程名称
'value' => $subject_homework->english_name . '/' . date('m-d H:i', strtotime($subject_homework->start_time)), 'value' => $subject_homework->english_name . '/' . date('m-d H:i', strtotime($subject_homework->start_time)),
'color' => '#000000' 'color' => '#000000'
], ],
'thing2' => [//作业名称 'thing2' => [//作业名称
'value' => $subject_homework->teacher_name, 'value' => $subject_homework->english_name . '/' . date('m-d H:i', strtotime($subject_homework->start_time)),
'color' => '#000000' 'color' => '#000000'
], ],
'thing5' => [//批改老师 'thing5' => [//批改老师
@ -303,7 +317,7 @@ class SendMsgCronJobService
'color' => '#000000' 'color' => '#000000'
], ],
'time3' => [//作业截止时间 'time3' => [//作业截止时间
'value' => $subject_homework->teacher_name, 'value' => $next_time,
'color' => '#000000' 'color' => '#000000'
] ]
], ],
@ -315,6 +329,8 @@ class SendMsgCronJobService
$result = (new WechatSubscriptService())->sendMsg($send_teacher_data); $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()
];
}
}
} }