374 lines
15 KiB
PHP
374 lines
15 KiB
PHP
<?php
|
|
|
|
namespace plugin\admin\app\controller;
|
|
|
|
use app\common\model\Student;
|
|
use app\common\model\Subject;
|
|
use app\common\model\Teacher;
|
|
use app\common\service\SendMsgCronJobService;
|
|
use app\constant\ResponseCode;
|
|
use support\Request;
|
|
use support\Response;
|
|
use plugin\admin\app\model\SubjectHomework;
|
|
use plugin\admin\app\controller\Crud;
|
|
use support\exception\BusinessException;
|
|
use think\Exception;
|
|
|
|
/**
|
|
* 课程作业
|
|
*/
|
|
class SubjectHomeworkController extends Crud
|
|
{
|
|
|
|
/**
|
|
* @var SubjectHomework
|
|
*/
|
|
protected $model = null;
|
|
|
|
/**
|
|
* 构造函数
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->model = new SubjectHomework;
|
|
}
|
|
|
|
/**
|
|
* 浏览
|
|
* @return Response
|
|
*/
|
|
public function index(): Response
|
|
{
|
|
$teacher = Teacher::order('id desc')->field('id,teacher_name')->select()->toArray();
|
|
$subject = Subject::order('id desc')->field('id,subject_name, english_name')->select()->toArray();
|
|
$student = Student::order('id desc')->field('id,student_name')->select()->toArray();
|
|
|
|
return view('subject-homework/index', compact('teacher', 'subject', 'student'));
|
|
}
|
|
|
|
public function select(Request $request): Response
|
|
{
|
|
try {
|
|
$homework = \app\common\model\SubjectHomework::order('wa_subject_homework.start_time desc, wa_subject_homework.id desc')
|
|
->alias('sh')
|
|
->leftJoin('student_homework sth', 'sth.subject_homework_id = sh.id')
|
|
->leftJoin('student s', 's.id = sth.student_id')
|
|
->field('sh.*,s.student_name');
|
|
$data = $request->get();
|
|
if (isset($data['teacher_id']) && $data['teacher_id']) {
|
|
$homework->where('sh.teacher_id', $data['teacher_id']);
|
|
}
|
|
if (isset($data['date']) && $data['date']) {
|
|
$homework->where('sh.date', $data['date']);
|
|
}
|
|
if (isset($data['month']) && $data['month']) {
|
|
$homework->where('sh.month', $data['month']);
|
|
}
|
|
if (isset($data['subject_id']) && $data['subject_id']) {
|
|
$homework->where('sh.subject_id', $data['subject_id']);
|
|
}
|
|
// if (isset($data['is_publish']) && $data['is_publish'] !== '') {
|
|
// $homework->where('sh.is_publish', $data['is_publish']);
|
|
// }
|
|
if (isset($data['is_merge_report']) && $data['is_merge_report'] !== '') {
|
|
$homework->where('sh.is_merge_report', $data['is_merge_report']);
|
|
}
|
|
if (isset($data['student_id']) && $data['student_id']) {
|
|
$homework->where(['sth.student_id'=> $data['student_id']]);
|
|
}
|
|
|
|
$limit = (int)$request->get('limit', 10);
|
|
$limit = $limit <= 0 ? 10 : $limit;
|
|
$page = (int)$request->get('page');
|
|
$page = $page > 0 ? $page : 1;
|
|
|
|
$total = $homework->count();
|
|
$list = $homework
|
|
->page($page, $limit)->with(['teacher', 'subject'])->select();
|
|
|
|
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'data' => $list,
|
|
'count' => $total
|
|
]);
|
|
} catch (Exception $e) {
|
|
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_FAIL,
|
|
'msg' => $e->getMessage()
|
|
]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 插入
|
|
* @param Request $request
|
|
* @return Response
|
|
* @throws BusinessException
|
|
*/
|
|
public function insert(Request $request): Response
|
|
{
|
|
if ($request->method() === 'POST') {
|
|
return parent::insert($request);
|
|
}
|
|
return view('subject-homework/insert');
|
|
}
|
|
|
|
/**
|
|
* 更新
|
|
* @param Request $request
|
|
* @return Response
|
|
* @throws BusinessException
|
|
*/
|
|
public function update(Request $request): Response
|
|
{
|
|
if ($request->method() === 'POST') {
|
|
$data = $request->post();
|
|
$homework_file_url = [];
|
|
if (isset($data['homework_file_url'])) {
|
|
foreach ($data['homework_file_url'] as $key => $value) {
|
|
$homework_file_url[] = [
|
|
'url' => $value,
|
|
'name' => $data['homework_file_url_name'][$key]
|
|
];
|
|
}
|
|
}
|
|
|
|
$homework_version_file_url = [];
|
|
if (isset($data['homework_version_file_url'])) {
|
|
foreach ($data['homework_version_file_url'] as $key => $value) {
|
|
$homework_version_file_url[] = [
|
|
'url' => $value,
|
|
'name' => $data['homework_version_file_url_name'][$key]
|
|
];
|
|
}
|
|
}
|
|
$last_homework_feedback_url = [];
|
|
|
|
if (isset($data['last_homework_feedback_url'])) {
|
|
foreach ($data['last_homework_feedback_url'] as $key => $value) {
|
|
$last_homework_feedback_url[] = [
|
|
'url' => $value,
|
|
'name' => $data['last_homework_feedback_url_name'][$key]
|
|
];
|
|
}
|
|
}
|
|
|
|
// $last_homework_feedback_version_url = [];
|
|
// if (isset($data['last_homework_feedback_version_url'])) {
|
|
// foreach ($data['last_homework_feedback_version_url'] as $key => $value) {
|
|
// $last_homework_feedback_version_url[] = [
|
|
// 'url' => $value,
|
|
// 'name' => $data['last_homework_feedback_version_url_name'][$key]
|
|
// ];
|
|
// }
|
|
// }
|
|
|
|
|
|
$subject_report_url = [];
|
|
if (isset($data['subject_report_url'])) {
|
|
foreach ($data['subject_report_url'] as $key => $value) {
|
|
$subject_report_url[] = [
|
|
'url' => $value,
|
|
'name' => $data['subject_report_url_name'][$key]
|
|
];
|
|
}
|
|
}
|
|
|
|
|
|
$subject_report_version_url = [];
|
|
if (isset($data['subject_report_version_url'])) {
|
|
foreach ($data['subject_report_version_url'] as $key => $value) {
|
|
$subject_report_version_url[] = [
|
|
'url' => $value,
|
|
'name' => $data['subject_report_version_url_name'][$key]
|
|
];
|
|
}
|
|
}
|
|
|
|
|
|
$subject_file_url = [];
|
|
if (isset($data['subject_file_url'])) {
|
|
foreach ($data['subject_file_url'] as $key => $value) {
|
|
$subject_file_url[] = [
|
|
'url' => $value,
|
|
'name' => $data['subject_file_url_name'][$key]
|
|
];
|
|
}
|
|
}
|
|
|
|
|
|
// $subject_file_version_url = [];
|
|
// if (isset($data['subject_file_version_url'])) {
|
|
// foreach ($data['subject_file_version_url'] as $key => $value) {
|
|
// $subject_file_version_url[] = [
|
|
// 'url' => $value,
|
|
// 'name' => $data['subject_file_version_url_name'][$key]
|
|
// ];
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
$subject_homework = \app\common\model\SubjectHomework::where(['id' => $data['id']])->findOrEmpty();
|
|
$subject_homework->save([
|
|
'homework_web_url' => $data['homework_web_url'],
|
|
'homework_file_url' => empty($homework_file_url) ? '' : json_encode($homework_file_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
'homework_file_is_publish' => isset($data['homework_file_is_publish']) ? $data['homework_file_is_publish'] : 0,
|
|
// 'homework_version_is_publish' => $data['homework_version_is_publish'],
|
|
// 'subject_file_version_is_publish' => $data['subject_file_version_is_publish'],
|
|
'homework_version_file_url' => empty($homework_version_file_url) ? '' : json_encode($homework_version_file_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
'last_homework_feedback_url' => empty($last_homework_feedback_url) ? '' : json_encode($last_homework_feedback_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
'last_homework_feedback_is_publish' => isset($data['last_homework_feedback_is_publish']) ? $data['last_homework_feedback_is_publish'] : 0,
|
|
// 'last_homework_feedback_version_url' => empty($last_homework_feedback_version_url) ? '' : json_encode($last_homework_feedback_version_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
'subject_report_url' => empty($subject_report_url) ? '' : json_encode($subject_report_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
'subject_report_version_url' => empty($subject_report_version_url) ? '' : json_encode($subject_report_version_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
'subject_report_version_is_publish' => isset($data['subject_report_version_is_publish']) ? $data['subject_report_version_is_publish'] : 0,
|
|
'subject_file_url' => empty($subject_file_url) ? '' : json_encode($subject_file_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
'subject_file_url_is_publish' => isset($data['subject_file_url_is_publish']) ? $data['subject_file_url_is_publish'] : 0,
|
|
// 'subject_file_version_url' => empty($subject_file_version_url) ? '' : json_encode($subject_file_version_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'msg' => 'success'
|
|
]);
|
|
// return parent::update($request);
|
|
}
|
|
|
|
//课程作业详情
|
|
$subject_homework = \app\common\model\SubjectHomework::where('id', $request->get('id'))->with(['teacher', 'subject'])->findOrEmpty()->toArray();
|
|
|
|
if ($subject_homework['homework_file_url']) {
|
|
$subject_homework['homework_file_url'] = json_decode($subject_homework['homework_file_url'], true);
|
|
}
|
|
if ($subject_homework['homework_version_file_url']) {
|
|
$subject_homework['homework_version_file_url'] = json_decode($subject_homework['homework_version_file_url'], true);
|
|
}
|
|
if ($subject_homework['last_homework_feedback_url']) {
|
|
$subject_homework['last_homework_feedback_url'] = json_decode($subject_homework['last_homework_feedback_url'], true);
|
|
}
|
|
if ($subject_homework['last_homework_feedback_version_url']) {
|
|
$subject_homework['last_homework_feedback_version_url'] = json_decode($subject_homework['last_homework_feedback_version_url'], true);
|
|
}
|
|
if ($subject_homework['subject_report_url']) {
|
|
$subject_homework['subject_report_url'] = json_decode($subject_homework['subject_report_url'], true);
|
|
}
|
|
if ($subject_homework['subject_report_version_url']) {
|
|
$subject_homework['subject_report_version_url'] = json_decode($subject_homework['subject_report_version_url'], true);
|
|
}
|
|
if ($subject_homework['subject_file_url']) {
|
|
$subject_homework['subject_file_url'] = json_decode($subject_homework['subject_file_url'], true);
|
|
}
|
|
|
|
if ($subject_homework['subject_file_version_url']) {
|
|
$subject_homework['subject_file_version_url'] = json_decode($subject_homework['subject_file_version_url'], true);
|
|
}
|
|
|
|
|
|
return view('subject-homework/update', ['subject_homework' => $subject_homework]);
|
|
}
|
|
|
|
/**
|
|
* @desc 更改发布状态
|
|
* @param Request $request
|
|
* @return Response
|
|
*/
|
|
public function changePublishStatus(Request $request)
|
|
{
|
|
$subject_homework = \app\common\model\SubjectHomework::where('id', $request->post('id'))->findOrEmpty();
|
|
$subject_homework->save([
|
|
'is_publish' => $request->post('is_publish')
|
|
]);
|
|
if($subject_homework->subject_file_version_is_publish){
|
|
//课程作业发布之后通知学生
|
|
(new SendMsgCronJobService())->uploadVersionSubjectHomeworkNotifyStudent($subject_homework->id);
|
|
}
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'msg' => 'success'
|
|
]);
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @desc 更改家庭作业发布状态
|
|
* @param Request $request
|
|
* @return Response
|
|
*/
|
|
public function changeHomeworkFilePublishStatus(Request $request)
|
|
{
|
|
$subject_homework = \app\common\model\SubjectHomework::where('id', $request->post('id'))->findOrEmpty();
|
|
$subject_homework->save([
|
|
'homework_file_is_publish' => $request->post('homework_file_is_publish')
|
|
]);
|
|
if($subject_homework->homework_file_is_publish){
|
|
//课程作业发布之后通知学生
|
|
(new SendMsgCronJobService())->uploadVersionSubjectHomeworkNotifyStudent($subject_homework->id);
|
|
}
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'msg' => 'success'
|
|
]);
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @desc 更改课程报告发布状态
|
|
* @param Request $request
|
|
* @return Response
|
|
*/
|
|
public function changeSubjectReportPublishStatus(Request $request)
|
|
{
|
|
$subject_homework = \app\common\model\SubjectHomework::where('id', $request->post('id'))->findOrEmpty();
|
|
$subject_homework->save([
|
|
'subject_report_version_is_publish' => $request->post('subject_report_version_is_publish')
|
|
]);
|
|
if($subject_homework->subject_report_version_is_publish){
|
|
//课程报告发布之后通知学生
|
|
(new SendMsgCronJobService())->uploadSubjectReportVersionNotifyStudentParents($subject_homework->id);
|
|
}
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'msg' => 'success'
|
|
]);
|
|
}
|
|
|
|
|
|
/**
|
|
* @desc 更改课程发布状态
|
|
* @param Request $request
|
|
* @return Response
|
|
*/
|
|
public function changeSubjectHomesteadPublishStatus(Request $request)
|
|
{
|
|
$subject_homework = \app\common\model\SubjectHomework::where('id', $request->post('id'))->findOrEmpty();
|
|
$request_data = $request->post();
|
|
$data = [];
|
|
if(isset($request_data['subject_report_version_is_publish'])){
|
|
$data['subject_report_version_is_publish'] = $request_data['subject_report_version_is_publish'];
|
|
}
|
|
|
|
if(isset($request_data['subject_report_version_is_publish'])){
|
|
$data['subject_report_version_is_publish'] = $request_data['subject_report_version_is_publish'];
|
|
}
|
|
|
|
$subject_homework->save($data);
|
|
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'msg' => 'success'
|
|
]);
|
|
}
|
|
|
|
|
|
}
|