course/plugin/admin/app/controller/StudentHomeworkController.php
2024-07-27 15:14:38 +08:00

193 lines
6.3 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\constant\ResponseCode;
use support\Request;
use support\Response;
use plugin\admin\app\model\StudentHomework;
use plugin\admin\app\controller\Crud;
use support\exception\BusinessException;
use think\Exception;
/**
* 家庭作业
*/
class StudentHomeworkController extends Crud
{
/**
* @var StudentHomework
*/
protected $model = null;
/**
* 构造函数
* @return void
*/
public function __construct()
{
$this->model = new StudentHomework;
}
/**
* 浏览
* @return Response
*/
public function index(): Response
{
//获取所有老师
$teacher = Teacher::order('id asc')->field('id,teacher_name,account')->select()->toArray();
//所有课程
$subject = Subject::order('sort desc,id asc')->field('id,subject_name,english_name')->select()->toArray();
//
$student = Student::order('id asc')->field('id,student_name,account')->select()->toArray();
return view('student-homework/index', [
'teacher' => $teacher,
'subject' => $subject,
'student' => $student,
]);
}
public function select(Request $request): Response
{
try {
$homework = \app\common\model\StudentHomework::order('id desc');
$data = $request->get();
if (isset($data['student_id']) && !empty($data['student_id'])) {
$homework->where('student_id', $data['student_id']);
}
if (isset($data['teacher_id']) && !empty($data['teacher_id'])) {
$homework->where('teacher_id', $data['teacher_id']);
}
if (isset($data['teacher_id']) && !empty($data['teacher_id'])) {
$homework->where('teacher_id', $data['teacher_id']);
}
if (isset($data['is_publish']) && $data['is_publish'] !== '') {
$homework->where('is_publish', $data['is_publish']);
}
$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->with(['student', 'subject', 'teacher'])->page($page, $limit)->select()->toArray();
foreach ($list as &$item) {
if ($item['feedback_file_url']) {
$item['feedback_file_url'] = json_decode($item['feedback_file_url'], true);
}
if ($item['feedback_version_file_url']) {
$item['feedback_version_file_url'] = json_decode($item['feedback_version_file_url'], true);
}
}
return json([
'code' => ResponseCode::WEB_API_SUCCESS,
'data' => $list,
'count' => $total,
'msg' => 'success'
]);
} 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('student-homework/insert');
}
/**
* 更新
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function update(Request $request): Response
{
if ($request->method() === 'POST') {
$data = $request->post();
$feedback_file_url = [];
if (isset($data['feedback_file_url'])) {
foreach ($data['feedback_file_url'] as $key => $value) {
$feedback_file_url[] = [
'url' => $value,
'name' => $data['feedback_file_url_name'][$key]
];
}
}
$feedback_version_file_url = [];
if (isset($data['feedback_version_file_url'])) {
foreach ($data['feedback_version_file_url'] as $key => $value) {
$feedback_version_file_url[] = [
'url' => $value,
'name' => $data['feedback_version_file_url_name'][$key]
];
}
}
$homework = \app\common\model\StudentHomework::where(['id'=>$data['id']])->findOrEmpty();
$homework->save([
'is_publish' => $data['is_publish'],
'feedback_file_url' => empty($feedback_file_url) ? '' : json_encode($feedback_file_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
'feedback_version_file_url' => empty($feedback_version_file_url) ? '' : json_encode($feedback_version_file_url, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
]);
return json([
'code' => ResponseCode::WEB_API_SUCCESS,
'msg' => 'success'
]);
}
$homework = \app\common\model\StudentHomework::where('id', $request->get('id'))->with(['student', 'subject', 'teacher'])->findOrEmpty()->toArray();
if($homework['feedback_file_url']){
$homework['feedback_file_url'] = json_decode($homework['feedback_file_url'], true);
}
if($homework['feedback_version_file_url']){
$homework['feedback_version_file_url'] = json_decode($homework['feedback_version_file_url'], true);
}
return view('student-homework/update', ['homework' => $homework]);
}
/**
* @desc 更改作业状态
* @param Request $request
* @return Response
*/
public function changePublishStatus(Request $request)
{
$subject_homework = \app\common\model\StudentHomework::where('id', $request->post('id'))->findOrEmpty();
$subject_homework->save([
'is_publish' => $request->post('is_publish')
]);
return json([
'code' => ResponseCode::WEB_API_SUCCESS,
'msg' => 'success'
]);
}
}