fix 学生课程作业发布,同步发送给家长和教师
This commit is contained in:
parent
1f50016717
commit
2af0578094
@ -5,6 +5,7 @@ namespace app\common\service;
|
||||
use app\common\model\CronJob;
|
||||
use app\common\model\Student;
|
||||
use app\common\model\StudentHomework;
|
||||
use app\common\model\StudentParent;
|
||||
use app\common\model\StudentSchedule;
|
||||
use app\common\model\SubjectHomework;
|
||||
use app\common\model\Teacher;
|
||||
@ -17,6 +18,9 @@ class SendMsgCronJobService
|
||||
const TEACHER_SCHEDULE_TIME_PUBLISH_TEACHER = 'teacher_schedule_time_publish_to_teacher';
|
||||
const TEACHER_SCHEDULE_TIME_PUBLISH_STUDENT = 'teacher_schedule_time_publish_to_student';
|
||||
|
||||
const TEACHER_SCHEDULE_TIME_PUBLISH_PARENTS = 'teacher_schedule_time_publish_to_parent';
|
||||
// const TEACHER_SCHEDULE_TIME_PUBLISH_TEACHER = 'teacher_schedule_time_publish_to_teacher';
|
||||
|
||||
|
||||
/**
|
||||
* 通知类型
|
||||
@ -208,6 +212,112 @@ class SendMsgCronJobService
|
||||
'send_result_msg' => $result['msg'],
|
||||
]);
|
||||
|
||||
|
||||
//查找学生家长,同步发送消息给家长
|
||||
$parents = StudentParent::where(['id' => $student['parent_id']])->findOrEmpty();
|
||||
if (!$parents->isEmpty()) {
|
||||
|
||||
$send_teacher_data = [
|
||||
'touser' => $parents['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_PARENTS,
|
||||
'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' => 'parent',
|
||||
'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'],
|
||||
]);
|
||||
}
|
||||
|
||||
if (isset($teacher_schedule_time['teacherAttr']) && !empty($teacher_schedule_time['teacherAttr']['openid'])) {
|
||||
//发送给教师
|
||||
$send_teacher_data = [
|
||||
'touser' => $teacher_schedule_time['teacherAttr']['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_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($teacher_schedule_time->toArray(), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
||||
'send_result' => $result['code'] == ResponseCode::SUCCESS ? 1 : 0,
|
||||
'send_result_msg' => $result['msg'],
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
@ -157,6 +157,7 @@ class StudentScheduleController extends Crud
|
||||
|
||||
$data = $request->post();
|
||||
if (isset($data['is_publish']) && $data['is_publish']) {
|
||||
//发送消息给学生
|
||||
$student_schedule = \app\common\model\StudentSchedule::where(['id' => $data['id']])->find();
|
||||
(new SendMsgCronJobService())->teacherScheduleTimePublishMsgToStudent($student_schedule->teacher_schedule_time_id);
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ namespace plugin\admin\app\controller;
|
||||
|
||||
use app\common\model\CronJob;
|
||||
use app\common\model\Student;
|
||||
use app\common\model\StudentParent;
|
||||
use app\common\model\TeacherScheduleTime;
|
||||
use app\common\service\SendMsgCronJobService;
|
||||
use app\common\service\WechatSubscriptService;
|
||||
@ -35,6 +36,7 @@ class sendMsgNotifyController extends Crud
|
||||
throw new Exception('未找到课程分配的学生');
|
||||
}
|
||||
|
||||
|
||||
$student_info = [];
|
||||
foreach ($studentSchedule as $student) {
|
||||
if (!$student['is_publish']) {
|
||||
@ -42,7 +44,7 @@ class sendMsgNotifyController extends Crud
|
||||
}
|
||||
|
||||
$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'], 'parent_id' => $student['parent_id']]);
|
||||
}
|
||||
|
||||
$student_name = implode(',', array_column($student_info, 'student_name'));
|
||||
@ -97,6 +99,110 @@ class sendMsgNotifyController extends Crud
|
||||
'send_result_msg' => $result['msg'],
|
||||
]);
|
||||
|
||||
//查找学生家长,同步发送消息给家长
|
||||
$parents = StudentParent::where(['id' => $student['parent_id']])->findOrEmpty();
|
||||
if (!$parents->isEmpty()) {
|
||||
|
||||
$send_teacher_data = [
|
||||
'touser' => $parents['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_PARENTS,
|
||||
'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' => 'parent',
|
||||
'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'],
|
||||
]);
|
||||
}
|
||||
|
||||
if (isset($teacher_schedule_time['teacherAttr']) && !empty($teacher_schedule_time['teacherAttr']['openid'])) {
|
||||
//发送给教师
|
||||
$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([
|
||||
@ -112,4 +218,4 @@ class sendMsgNotifyController extends Crud
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -8,68 +8,68 @@
|
||||
<link rel="stylesheet" href="/app/admin/admin/css/reset.css" />
|
||||
</head>
|
||||
<body class="pear-container">
|
||||
|
||||
|
||||
<!-- 顶部查询表单 -->
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form top-search-from">
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">消息类型</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="msg_type" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">教师</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="teacher_id" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">课程</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="subject_id" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">学生</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="student_id" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">教师排课id</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="teacher_schedule_time_id" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">课程开始时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="start_time" id="start_time" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发送角色</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="send_role" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">结果</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="send_result" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label"></label>
|
||||
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="table-query">
|
||||
@ -86,7 +86,7 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
@ -112,6 +112,8 @@
|
||||
<span class="layui-badge layui-bg-green">排课结果通知教师</span>
|
||||
{{# }else if(d.msg_type == 'teacher_schedule_time_publish_to_student'){ }}
|
||||
<span class="layui-badge layui-bg-blue">排课结果通知学生</span>
|
||||
{{# }else if(d.msg_type == 'teacher_schedule_time_publish_to_parent'){ }}
|
||||
<span class="layui-badge layui-bg-blue">排课结果通知家长</span>
|
||||
{{# }else if(d.msg_type == 'class_begin_notify_teacher'){ }}
|
||||
<span class="layui-badge layui-bg-green">课程开始提醒教师</span>
|
||||
{{# }else if(d.msg_type == 'subject_upload_notify_admin'){ }}
|
||||
@ -137,6 +139,8 @@
|
||||
<span class="layui-badge layui-bg-blue">学生</span>
|
||||
{{# }else if(d.send_role == 'admin'){ }}
|
||||
<span class="layui-badge layui-bg-red">管理员</span>
|
||||
{{# }else if(d.send_role == 'parent'){ }}
|
||||
<span class="layui-badge layui-bg-red">家长</span>
|
||||
{{# }else{ }}
|
||||
<span class="layui-badge layui-bg-red">未知</span>
|
||||
{{# } }}
|
||||
@ -223,7 +227,7 @@
|
||||
<script src="/app/admin/component/pear/pear.js"></script>
|
||||
<script src="/app/admin/admin/js/permission.js"></script>
|
||||
<script src="/app/admin/admin/js/common.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
// 相关常量
|
||||
@ -233,7 +237,7 @@
|
||||
const DELETE_API = "/app/admin/cron-job/delete";
|
||||
const INSERT_URL = "/app/admin/cron-job/insert";
|
||||
const UPDATE_URL = "/app/admin/cron-job/update";
|
||||
|
||||
|
||||
// 字段 课程开始时间 start_time
|
||||
layui.use(["laydate"], function() {
|
||||
layui.laydate.render({
|
||||
@ -241,7 +245,7 @@
|
||||
type: "datetime",
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// 表格渲染
|
||||
layui.use(["table", "form", "common", "popup", "util"], function() {
|
||||
let table = layui.table;
|
||||
@ -249,7 +253,7 @@
|
||||
let $ = layui.$;
|
||||
let common = layui.common;
|
||||
let util = layui.util;
|
||||
|
||||
|
||||
// 表头参数
|
||||
let cols = [
|
||||
{
|
||||
@ -340,7 +344,7 @@
|
||||
width: 120,
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
// 渲染表格
|
||||
table.render({
|
||||
elem: "#data-table",
|
||||
@ -360,8 +364,8 @@
|
||||
layer.photos({photos: 'div[lay-id="data-table"]', anim: 5});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// 编辑或删除行事件
|
||||
table.on("tool(data-table)", function(obj) {
|
||||
if (obj.event === "remove") {
|
||||
@ -392,14 +396,14 @@
|
||||
})
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
// 表格顶部搜索重置事件
|
||||
form.on("submit(table-reset)", function(data) {
|
||||
table.reload("data-table", {
|
||||
where: []
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
// 字段允许为空
|
||||
form.verify({
|
||||
phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"],
|
||||
|
Loading…
x
Reference in New Issue
Block a user