This commit is contained in:
Dai 2024-08-06 17:15:31 +08:00
parent d9ccbf8ced
commit 3625842e97
7 changed files with 98 additions and 54 deletions

View File

@ -72,4 +72,12 @@ class SendMsgCronJobController extends BaseController
public function uploadVersionSubjectHomeworkNotifyStudent(Request $request)
{
$res = (new SendMsgCronJobService())->uploadVersionSubjectHomeworkNotifyStudent(10);
return $this->json($res);
}
} }

View File

@ -23,5 +23,14 @@ class SubjectHomework extends BaseModel
'english_name' 'english_name'
]); ]);
} }
/**
* @desc 安排学生
* @return \think\model\relation\HasMany
*/
public function studentHomework()
{
return $this->hasMany(StudentHomework::class, 'subject_homework_id', 'id');
}
} }

View File

@ -48,7 +48,7 @@ class SendMsgCronJobService
//给教师发送消息 //给教师发送消息
$msgInfo = $teacher_schedule_time->toArray(); $msgInfo = $teacher_schedule_time->toArray();
$student_name = implode(',',array_column($student_info, 'student_name')); $student_name = implode(',', array_column($student_info, 'student_name'));
$send_teacher_data = [ $send_teacher_data = [
'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo', 'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',
'template_id' => 'gTtXWz35mjbtbOZdq6uNBIqy2_W-gu7F4H6s5N-vNAI', 'template_id' => 'gTtXWz35mjbtbOZdq6uNBIqy2_W-gu7F4H6s5N-vNAI',
@ -82,19 +82,19 @@ class SendMsgCronJobService
'teacher_id' => $teacher_schedule_time->teacher_id, 'teacher_id' => $teacher_schedule_time->teacher_id,
'subject_id' => $teacher_schedule_time->subject_id, 'subject_id' => $teacher_schedule_time->subject_id,
'student_id' => '', 'student_id' => '',
'teacher_schedule_time_id'=>$teacher_schedule_time->id, 'teacher_schedule_time_id' => $teacher_schedule_time->id,
'time'=>$teacher_schedule_time->time, 'time' => $teacher_schedule_time->time,
'en_time'=>$teacher_schedule_time->en_time, 'en_time' => $teacher_schedule_time->en_time,
'start_time'=>$teacher_schedule_time->start_time, 'start_time' => $teacher_schedule_time->start_time,
'end_time'=>$teacher_schedule_time->end_time, 'end_time' => $teacher_schedule_time->end_time,
'en_start_time'=>$teacher_schedule_time->en_start_time, 'en_start_time' => $teacher_schedule_time->en_start_time,
'en_end_time'=>$teacher_schedule_time->en_end_time, 'en_end_time' => $teacher_schedule_time->en_end_time,
'send_role'=> 'teacher', 'send_role' => 'teacher',
'send_data'=> json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 'send_data' => json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
'msg_info' => json_encode($msgInfo, 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' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0,
'send_result_msg'=> $result['msg'], 'send_result_msg' => $result['msg'],
]); ]);
foreach ($student_info as $student) { foreach ($student_info as $student) {
@ -131,18 +131,18 @@ class SendMsgCronJobService
'teacher_id' => $teacher_schedule_time->teacher_id, 'teacher_id' => $teacher_schedule_time->teacher_id,
'subject_id' => $teacher_schedule_time->subject_id, 'subject_id' => $teacher_schedule_time->subject_id,
'student_id' => '', 'student_id' => '',
'teacher_schedule_time_id'=>$teacher_schedule_time->id, 'teacher_schedule_time_id' => $teacher_schedule_time->id,
'time'=>$teacher_schedule_time->time, 'time' => $teacher_schedule_time->time,
'en_time'=>$teacher_schedule_time->en_time, 'en_time' => $teacher_schedule_time->en_time,
'start_time'=>$teacher_schedule_time->start_time, 'start_time' => $teacher_schedule_time->start_time,
'end_time'=>$teacher_schedule_time->end_time, 'end_time' => $teacher_schedule_time->end_time,
'en_start_time'=>$teacher_schedule_time->en_start_time, 'en_start_time' => $teacher_schedule_time->en_start_time,
'en_end_time'=>$teacher_schedule_time->en_end_time, 'en_end_time' => $teacher_schedule_time->en_end_time,
'send_role'=> 'student', 'send_role' => 'student',
'send_data'=> json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 'send_data' => json_encode($send_teacher_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
'msg_info' => json_encode($msgInfo, 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' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0,
'send_result_msg'=> $result['msg'], 'send_result_msg' => $result['msg'],
]); ]);
} }
@ -160,7 +160,7 @@ class SendMsgCronJobService
public function classBeginMsgToTeacher() public function classBeginMsgToTeacher()
{ {
try { try {
$teacher_schedule_time = TeacherScheduleTime::where(['is_publish'=>1]) $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 00:00:00', strtotime('+21 day')))
->whereTime('start_time', '<=', date('Y-m-d 23:59:59', strtotime('+21 day'))) ->whereTime('start_time', '<=', date('Y-m-d 23:59:59', strtotime('+21 day')))
->with(['teacherAttr', 'subject', 'studentSchedule']) ->with(['teacherAttr', 'subject', 'studentSchedule'])
@ -182,7 +182,7 @@ class SendMsgCronJobService
$student = Student::where(['id' => $student['student_id']])->findOrEmpty(); $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']]);
} }
$student_name = implode(',',array_column($student_info, 'student_name')); $student_name = implode(',', array_column($student_info, 'student_name'));
$send_teacher_data = [ $send_teacher_data = [
'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo发送人 'touser' => 'olfLh6o4CG9xb6_tA3y29shOj_Bo',//@todo发送人
'template_id' => 'yYw0jnlhjnq4AJ_CAlAghgGyV0bvbVHG-eV8TNC3REI', 'template_id' => 'yYw0jnlhjnq4AJ_CAlAghgGyV0bvbVHG-eV8TNC3REI',
@ -213,7 +213,7 @@ class SendMsgCronJobService
$result = (new WechatSubscriptService())->sendMsg($send_teacher_data); $result = (new WechatSubscriptService())->sendMsg($send_teacher_data);
} }
}catch (Exception $e) { } catch (Exception $e) {
return [ return [
'code' => ResponseCode::FAIL, 'code' => ResponseCode::FAIL,
'msg' => $e->getMessage() 'msg' => $e->getMessage()
@ -256,7 +256,7 @@ class SendMsgCronJobService
$result = (new WechatSubscriptService())->sendMsg($send_teacher_data); $result = (new WechatSubscriptService())->sendMsg($send_teacher_data);
}catch (Exception $e) { } catch (Exception $e) {
return [ return [
'code' => ResponseCode::FAIL, 'code' => ResponseCode::FAIL,
'msg' => $e->getMessage() 'msg' => $e->getMessage()
@ -265,11 +265,27 @@ class SendMsgCronJobService
} }
/**
* @desc 老师上传作业后台管理员人员翻译过,重新上传通知学生
* @param $subject_homework_id
* @return array|void
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadVersionSubjectHomeworkNotifyStudent($subject_homework_id) public function uploadVersionSubjectHomeworkNotifyStudent($subject_homework_id)
{ {
try { try {
$subject_homework = SubjectHomework::where(['id' => $subject_homework_id])->with(['teacher', 'subject'])->findOrEmpty(); $subject_homework = SubjectHomework::where(['id' => $subject_homework_id])->with(['teacher', 'subject'])->findOrEmpty();
if(!empty($subject_homework->homework_version_file_url)){
//查找相同老师、相同课程、相同学生的下一节课
$teacher_schedule_time = TeacherScheduleTime::where(['id' => $subject_homework->teacher_schedule_time_id])->with(['studentSchedule'])->findOrEmpty();
print '<pre>';
print_r($teacher_schedule_time->toArray());
die;
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' => 'OKLtn1L12ZrKsJczk1IRn_8kcQ4aKBmMsYsnjgAkkfE',
@ -302,7 +318,7 @@ class SendMsgCronJobService
} }
}catch (Exception $e) { } catch (Exception $e) {
return [ return [
'code' => ResponseCode::FAIL, 'code' => ResponseCode::FAIL,
'msg' => $e->getMessage() 'msg' => $e->getMessage()

View File

@ -28,12 +28,16 @@ class SubjectHomeworkService
throw new Exception('未找到教师信息,设置失败'); throw new Exception('未找到教师信息,设置失败');
} }
$data = $request->post(); $data = $request->post();
$teacher_schedule_time = TeacherScheduleTime::where(['id' => $data['teacher_schedule_time_id']])->findOrEmpty(); $teacher_schedule_time = TeacherScheduleTime::where(['id' => $data['teacher_schedule_time_id'], 'is_publish' => 1])->findOrEmpty();
if ($teacher_schedule_time->isEmpty()) { if ($teacher_schedule_time->isEmpty()) {
throw new Exception('未找到教师课程安排'); throw new Exception('未找到教师课程安排');
} }
if (empty($teacher_schedule_time->subject_id)) {
throw new Exception('未安排课程');
}
if (isset($data['subject_homework_id']) && !empty($data['subject_homework_id'])) { if (isset($data['subject_homework_id']) && !empty($data['subject_homework_id'])) {
$subject_homework = SubjectHomework::where(['id' => $data['subject_homework_id']])->findOrEmpty(); $subject_homework = SubjectHomework::where(['id' => $data['subject_homework_id']])->findOrEmpty();
@ -43,33 +47,33 @@ class SubjectHomeworkService
'teacher_schedule_time_id' => $data['teacher_schedule_time_id'], 'teacher_schedule_time_id' => $data['teacher_schedule_time_id'],
'subject_id' => $teacher_schedule_time->subject_id 'subject_id' => $teacher_schedule_time->subject_id
])->findOrEmpty(); ])->findOrEmpty();
if($subject_homework->isEmpty()){ if ($subject_homework->isEmpty()) {
$subject_homework = new SubjectHomework(); $subject_homework = new SubjectHomework();
} }
} }
$homework_file_url = ''; $homework_file_url = '';
if(isset($data['homework_file_url'])){ if (isset($data['homework_file_url'])) {
if(!empty(json_decode($data['homework_file_url'],true))){ if (!empty(json_decode($data['homework_file_url'], true))) {
$homework_file_url = $data['homework_file_url']; $homework_file_url = $data['homework_file_url'];
} }
} }
$last_homework_feedback_url = ''; $last_homework_feedback_url = '';
if(isset($data['last_homework_feedback_url'])){ if (isset($data['last_homework_feedback_url'])) {
if(!empty(json_decode($data['last_homework_feedback_url'],true))){ if (!empty(json_decode($data['last_homework_feedback_url'], true))) {
$last_homework_feedback_url = $data['last_homework_feedback_url']; $last_homework_feedback_url = $data['last_homework_feedback_url'];
} }
} }
$subject_report_url = ''; $subject_report_url = '';
if(isset($data['subject_report_url'])){ if (isset($data['subject_report_url'])) {
if(!empty(json_decode($data['subject_report_url'],true))){ if (!empty(json_decode($data['subject_report_url'], true))) {
$subject_report_url = $data['subject_report_url']; $subject_report_url = $data['subject_report_url'];
} }
} }
$subject_file_url = ''; $subject_file_url = '';
if(isset($data['subject_file_url'])){ if (isset($data['subject_file_url'])) {
if(!empty(json_decode($data['subject_file_url'],true))){ if (!empty(json_decode($data['subject_file_url'], true))) {
$subject_file_url = $data['subject_file_url']; $subject_file_url = $data['subject_file_url'];
} }
} }
@ -121,29 +125,29 @@ class SubjectHomeworkService
->with(['teacher', 'subject']) ->with(['teacher', 'subject'])
->findOrEmpty(); ->findOrEmpty();
if($subject_homework->homework_file_url){ if ($subject_homework->homework_file_url) {
$subject_homework->homework_file_url = json_decode($subject_homework->homework_file_url, true); $subject_homework->homework_file_url = json_decode($subject_homework->homework_file_url, true);
}else{ } else {
$subject_homework->homework_file_url = []; $subject_homework->homework_file_url = [];
} }
if($subject_homework->homework_version_file_url){ if ($subject_homework->homework_version_file_url) {
$subject_homework->homework_version_file_url = json_decode($subject_homework->homework_version_file_url, true); $subject_homework->homework_version_file_url = json_decode($subject_homework->homework_version_file_url, true);
}else{ } else {
$subject_homework->homework_version_file_url = []; $subject_homework->homework_version_file_url = [];
} }
if($subject_homework->last_homework_feedback_url){ if ($subject_homework->last_homework_feedback_url) {
$subject_homework->last_homework_feedback_url = json_decode($subject_homework->last_homework_feedback_url, true); $subject_homework->last_homework_feedback_url = json_decode($subject_homework->last_homework_feedback_url, true);
}else{ } else {
$subject_homework->last_homework_feedback_url = []; $subject_homework->last_homework_feedback_url = [];
} }
if($subject_homework->subject_report_url){ if ($subject_homework->subject_report_url) {
$subject_homework->subject_report_url = json_decode($subject_homework->subject_report_url, true); $subject_homework->subject_report_url = json_decode($subject_homework->subject_report_url, true);
}else{ } else {
$subject_homework->subject_report_url = []; $subject_homework->subject_report_url = [];
} }
if($subject_homework->subject_file_url){ if ($subject_homework->subject_file_url) {
$subject_homework->subject_file_url = json_decode($subject_homework->subject_file_url, true); $subject_homework->subject_file_url = json_decode($subject_homework->subject_file_url, true);
}else{ } else {
$subject_homework->subject_file_url = []; $subject_homework->subject_file_url = [];
} }

View File

@ -21,7 +21,7 @@ class WechatUtil
public static function getAccessToken() public static function getAccessToken()
{ {
try { try {
// $str = '83_5nmVfFogqz0nUC-sXhNJNRAcD6doq1N3E-g2fb3ty1RqqZq2kXazJDA2-z5TibuSmmUdFh6RlEzojOx1hWMp1dkKKpAQOH7GIuvz0RWTRfYAdeTiDaeRcDXx6TsDOUdABATEK'; // $str = '83_s2360Qbo3QwQgLRYvmeRjBWkLxkP2gbhfc6D-oT31f2oQ5S47rXfTc52dyxBNZ9ZMuVTnEWBxyuAZ-OVZolz5_PDu7wTmzuPT3n8_g6TyeZv__ZliUG5GX3U9LsGQIcAJAVFX';
// Cache::set(self::GENERAL_ACCESS_TOKEN, $str, 3500); // Cache::set(self::GENERAL_ACCESS_TOKEN, $str, 3500);
if (Cache::has(self::GENERAL_ACCESS_TOKEN)) { if (Cache::has(self::GENERAL_ACCESS_TOKEN)) {
return Cache::get(self::GENERAL_ACCESS_TOKEN); return Cache::get(self::GENERAL_ACCESS_TOKEN);

View File

@ -69,7 +69,7 @@
<input type="text" name="subject_id" value="0" class="layui-input"> <input type="text" name="subject_id" value="0" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">家庭作业地址</label> <label class="layui-form-label">家庭作业地址</label>
<div class="layui-input-block"> <div class="layui-input-block">

View File

@ -62,6 +62,13 @@
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">课程作业</label>
<div class="layui-input-block">
<input type="text" name="content" value="{$subject_homework['content']}"
class="layui-input">
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">课程作业网址</label> <label class="layui-form-label">课程作业网址</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -130,8 +137,8 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">上次作业</label> <label class="layui-form-label">上次作业</label>
<div class="layui-input-block" id="last_homework_feedback_url"> <div class="layui-input-block" id="last_homework_feedback_url">
{if !empty($subject_homework['homework_version_file_url'])} {if !empty($subject_homework['last_homework_feedback_url'])}
{foreach $subject_homework['homework_version_file_url'] as $index => $item} {foreach $subject_homework['last_homework_feedback_url'] as $index => $item}
<div style="margin-top: 10px;display: inline-block;"> <div style="margin-top: 10px;display: inline-block;">
<div style="width: 250px;"> <div style="width: 250px;">
<span><a href="{$item['url']}">{$item['name']}</a></span> <span><a href="{$item['url']}">{$item['name']}</a></span>