From fb0127e90d22eb1292b0b76cef4fdb6daf36386e Mon Sep 17 00:00:00 2001 From: ll <2149573631@qq.com> Date: Sun, 23 Apr 2023 15:13:41 +0800 Subject: [PATCH] =?UTF-8?q?file:=E6=96=B0=E5=A2=9E=E6=95=99=E5=B8=88?= =?UTF-8?q?=E5=92=8C=E6=8E=88=E8=AF=BE=E7=A7=91=E7=9B=AE=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/Teachers_strength/Teacher.php | 162 ++++++++++++++++ .../controller/Teachers_strength/subject.php | 138 ++++++++++++++ app/api/controller/Teachers/Teachers.php | 73 +++++++ app/api/controller/subject/subject.php | 64 +++++++ .../model/Teachers_strength/Teacher.php | 179 ++++++++++++++++++ .../model/Teachers_strength/subject.php | 155 +++++++++++++++ 6 files changed, 771 insertions(+) create mode 100644 app/admin/controller/Teachers_strength/Teacher.php create mode 100644 app/admin/controller/Teachers_strength/subject.php create mode 100644 app/api/controller/Teachers/Teachers.php create mode 100644 app/api/controller/subject/subject.php create mode 100644 app/common/model/Teachers_strength/Teacher.php create mode 100644 app/common/model/Teachers_strength/subject.php diff --git a/app/admin/controller/Teachers_strength/Teacher.php b/app/admin/controller/Teachers_strength/Teacher.php new file mode 100644 index 0000000..1fa8e67 --- /dev/null +++ b/app/admin/controller/Teachers_strength/Teacher.php @@ -0,0 +1,162 @@ +param(); + $con = []; + + $con = Tool::getOptionalQuery(['teacher_name', 'LIKE'], ['teacher_position', '='], ['subject_guid', '='],); + + $query = ModelTeacher::where($con) + ->field([ + 'teacher_id', + 'teacher_guid', + 'teacher_name', + 'teacher_position', + 'teacher_img', + 'subject_guid', + 'teacher_intro', + 'teacher_order' + ]) + ->order('teacher_update_time', 'desc'); + + return msg("获取教师列表成功!", $query); + } + + /** + * 编辑教师 + */ + public function editTeacher(Request $request): array + { + $params = $request->param(); + $this->validate($params, [ + 'teacher_name|教师名称' => 'require', + 'teacher_position|教师职位' => 'require', + 'teacher_img|教师图片' => 'require', + 'subject_guid|授课科目' => 'require', + 'teacher_intro|教师简介' => 'require', + 'teacher_order|教师排序' => 'require' + ]); + $model = ModelTeacher::where('teacher_guid', $params['teacher_guid'])->find(); + if (!$model) throwErrorMsg("该教师不存在", 1); + $model->allowField([ + 'teacher_update_user_guid', + 'teacher_name', + 'teacher_position', + 'teacher_img', + 'subject_guid', + 'teacher_intro', + 'teacher_order' + ])->save($params); + return msg('编辑成功!'); + } + + /** + * 添加教师 + */ + public function addTeacher(Request $request): array + { + $params = $request->param(); + $this->validate($params, [ + 'teacher_name|教师名称' => 'require', + 'teacher_position|教师职位' => 'require', + 'teacher_img|教师图片' => 'require', + 'subject_guid|授课科目' => 'require', + 'teacher_intro|教师简介' => 'require', + 'teacher_order|教师排序' => 'require' + ]); + $model = ModelTeacher::create($params, [ + 'teacher_guid', + 'teacher_create_user_guid', + 'teacher_update_user_guid', + 'teacher_name', + 'teacher_position', + 'teacher_img', + 'subject_guid', + 'teacher_intro', + 'teacher_order' + ]); + return msg('添加成功!'); + } + + /** + * 删除教师 + */ + public function deleteTeacher(Request $request): array + { + $params = $request->param(); + $this->validate($params, [ + 'teacher_guid' => 'require', + ]); + $teacher = ModelTeacher::where([ + 'teacher_guid' => explode(',', $params['teacher_guid']) + ])->select(); + $teacher->delete(); + return msg('删除成功!'); + } + + /** + * 导出Excel + */ + public function exportExcel(Request $request) + { + $params = $request->param(); + $select = ModelTeacher::field([ + 'teacher_name', + 'teacher_position', + 'teacher_img', + 'subject_guid', + 'teacher_intro', + 'teacher_order' + ]) + ->order('teacher_update_time', 'desc') + ->select(); + return ModelTeacher::exportExcel($select); + } + + /** + * 下载导入模板 + */ + public function downloadTemplate(Request $request) + { + $params = $request->param(); + $data = array_values(ModelTeacher::EXCELFIELD); + $excel = (new Excel())->exporTsheet($data); + $excel->save('教师导入模板.xlsx'); + } + + /** + * 导入excel + */ + public function importExcel(Request $request) + { + $file = new UploadFile('uploads', 'fileExt:xlsx'); + $file->putFile('teacher'); + + $msg = ModelTeacher::importExcel($file); + return [ + 'code' => 0, + 'msg' => $msg + ]; + } +} diff --git a/app/admin/controller/Teachers_strength/subject.php b/app/admin/controller/Teachers_strength/subject.php new file mode 100644 index 0000000..b4213e9 --- /dev/null +++ b/app/admin/controller/Teachers_strength/subject.php @@ -0,0 +1,138 @@ +param(); + $con = []; + + $con = Tool::getOptionalQuery(['subject_name', 'LIKE'], ['subject_sort', '='],); + + $query = ModelSubject::where($con) + ->field([ + 'subject_id', + 'subject_guid', + 'subject_name', + 'subject_sort' + ]) + ->order('subject_sort', 'asc'); + + return msg("获取授课科目列表成功!", $query); + } + + /** + * 编辑授课科目 + */ + public function editSubject(Request $request): array + { + $params = $request->param(); + $this->validate($params, [ + 'subject_name|科目名字' => 'require', + 'subject_sort|排序' => 'require' + ]); + $model = ModelSubject::where('subject_guid', $params['subject_guid'])->find(); + if (!$model) throwErrorMsg("该授课科目不存在", 1); + $model->allowField([ + 'subject_update_user_guid', + 'subject_name', + 'subject_sort' + ])->save($params); + return msg('编辑成功!'); + } + + /** + * 添加授课科目 + */ + public function addSubject(Request $request): array + { + $params = $request->param(); + $this->validate($params, [ + 'subject_name|科目名字' => 'require', + 'subject_sort|排序' => 'require' + ]); + $model = ModelSubject::create($params, [ + 'subject_guid', + 'subject_create_user_guid', + 'subject_update_user_guid', + 'subject_name', + 'subject_sort' + ]); + return msg('添加成功!'); + } + + /** + * 删除授课科目 + */ + public function deleteSubject(Request $request): array + { + $params = $request->param(); + $this->validate($params, [ + 'subject_guid' => 'require', + ]); + $subject = ModelSubject::where([ + 'subject_guid' => explode(',', $params['subject_guid']) + ])->select(); + $subject->delete(); + return msg('删除成功!'); + } + + /** + * 导出Excel + */ + public function exportExcel(Request $request) + { + $params = $request->param(); + $select = ModelSubject::field([ + 'subject_name', + 'subject_sort' + ]) + ->order('subject_update_time', 'desc') + ->select(); + return ModelSubject::exportExcel($select); + } + + /** + * 下载导入模板 + */ + public function downloadTemplate(Request $request) + { + $params = $request->param(); + $data = array_values(ModelSubject::EXCELFIELD); + $excel = (new Excel())->exporTsheet($data); + $excel->save('授课科目导入模板.xlsx'); + } + + /** + * 导入excel + */ + public function importExcel(Request $request) + { + $file = new UploadFile('uploads', 'fileExt:xlsx'); + $file->putFile('subject'); + + $msg = ModelSubject::importExcel($file); + return [ + 'code' => 0, + 'msg' => $msg + ]; + } +} diff --git a/app/api/controller/Teachers/Teachers.php b/app/api/controller/Teachers/Teachers.php new file mode 100644 index 0000000..73ffc01 --- /dev/null +++ b/app/api/controller/Teachers/Teachers.php @@ -0,0 +1,73 @@ +param(); + $con = []; + + $con = Tool::getOptionalQuery(['teacher_name','LIKE'],['teacher_position','='],['subject_guid','='],); + + $query = ModelTeachers::where($con) + ->field([ +'teacher_id', +'teacher_guid', +'teacher_name', +'teacher_position', +'teacher_img', +'subject_guid', +'teacher_intro', +'teacher_order' +]) + ->order('teacher_update_time', 'desc'); + + + + return msg("获取教师列表成功!",$query); + } + + /** + * 获取教师详情 + */ + public function getTeachersInfo(Request $request): array + { + $params = $request->param(); + + $this->validate($params, ['teacher_guid' => 'require']); + + $find = ModelTeachers::field([ +'teacher_id', +'teacher_guid', +'teacher_name', +'teacher_position', +'teacher_img', +'subject_guid', +'teacher_intro', +'teacher_order' +]) + ->where('teacher_guid',$params['teacher_guid']) + ->find(); + + return msg(0,'获取教师详情成功!',['data' => $find]); + } + +} diff --git a/app/api/controller/subject/subject.php b/app/api/controller/subject/subject.php new file mode 100644 index 0000000..90c8cdd --- /dev/null +++ b/app/api/controller/subject/subject.php @@ -0,0 +1,64 @@ +param(); + $con = []; + + $con = Tool::getOptionalQuery(['subject_name', 'LIKE'], ['subject_sort', '='],); + + $query = ModelSubject::where($con) + ->field([ + 'subject_id', + 'subject_guid', + 'subject_name', + 'subject_sort' + ]) + ->order('subject_sort', 'asc'); + + + + return msg("获取授课科目列表成功!", $query); + } + + /** + * 获取授课科目详情 + */ + public function getSubjectInfo(Request $request): array + { + $params = $request->param(); + + $this->validate($params, ['subject_guid' => 'require']); + + $find = ModelSubject::field([ + 'subject_id', + 'subject_guid', + 'subject_name', + 'subject_sort' + ]) + ->where('subject_guid', $params['subject_guid']) + ->find(); + + return msg(0, '获取授课科目详情成功!', ['data' => $find]); + } +} diff --git a/app/common/model/Teachers_strength/Teacher.php b/app/common/model/Teachers_strength/Teacher.php new file mode 100644 index 0000000..0cf7fa4 --- /dev/null +++ b/app/common/model/Teachers_strength/Teacher.php @@ -0,0 +1,179 @@ + "int", + + "teacher_guid" => "string", + + "teacher_name" => "string", + + "teacher_position" => "int", + + "teacher_img" => "string", + + "subject_guid" => "string", + + "teacher_intro" => "string", + + "teacher_order" => "int", + + "teacher_create_time" => "datetime", + + "teacher_create_user_guid" => "string", + + "teacher_update_time" => "datetime", + + "teacher_update_user_guid" => "string", + + "teacher_delete_time" => "datetime", + + "teacher_delete_user_guid" => "string", + + ]; + // 设置json类型字段 + protected $json = ['']; + // 开启自动写入时间戳字段 + protected $autoWriteTimestamp = 'datetime'; + // 创建时间 + protected $createTime = 'teacher_create_time'; + // 修改时间 + protected $updateTime = 'teacher_update_time'; + + + // excel导入/下载模板表头 + public const EXCELFIELD = [ +'teacher_name' => '教师名称', +'teacher_position' => '教师职位', +'teacher_img' => '教师图片', +'subject_guid' => '授课科目', +'teacher_intro' => '教师简介', +'teacher_order' => '教师排序', +]; + + + + /** + * 新增前 + */ + public static function onBeforeInsert(self $model): void + { + // self::checkRepeatData($model); + $model->completeCreateField(); + } + + /** + * 更新前 + */ + public static function onBeforeUpdate(self $model): void + { + // self::checkRepeatData($model); + $model->completeUpdateField(); + } + + /** + * 删除前 + */ + public static function onBeforeDelete(self $model): void + { + $model->completeDeleteField(); + } + + /** +* 导出Excel +*/ + public static function exportExcel($select) + { + $data = [[ +'教师名称', +'教师职位', +'教师图片', +'授课科目', +'教师简介', +'教师排序' +]]; + foreach ($select as $key => $val) { + $data[] = [ +$val['teacher_name'], +$val['teacher_position'], +Excel::ExportImgFiled($val['teacher_img']), +$val['subject_guid'], +$val['teacher_intro'], +$val['teacher_order'], +]; + } + $excel = (new Excel())->exporTsheet($data); + $excel->save('教师.xlsx'); + } + + /** +* 导入excel +*/ + public static function importExcel($file) + { + $msg = []; + + Db::startTrans(); + try { + $excel = new Excel($file); + $data = $excel->parseExcel( + Tool::getExcelRule(self::EXCELFIELD), + [ + 'titleLine' => [1] + ]); + if (!$data) throwErrorMsg('excel无数据', 1); + $msg = []; + foreach ($data as $line => $value) { + try { + $model = self::importExcelInit($value); + $msg[] = "{$line} 新增成功!
"; + } catch (\Throwable $th) { + $msg[] = "{$line} {$th->getMessage()}
"; + } + } + Db::commit(); + return implode(', ', $msg); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** +* 导入excel初始化 +*/ + public static function importExcelInit($value) + { + $teacher_name = $value['teacher_name'];$teacher_position = $value['teacher_position'];$teacher_img = $value['teacher_img'];$subject_guid = $value['subject_guid'];$teacher_intro = $value['teacher_intro'];$teacher_order = $value['teacher_order']; + return self::create([ +'teacher_name' => $teacher_name, +'teacher_position' => $teacher_position, +'teacher_img' => $teacher_img, +'subject_guid' => $subject_guid, +'teacher_intro' => $teacher_intro, +'teacher_order' => $teacher_order, +]); + } + + +} diff --git a/app/common/model/Teachers_strength/subject.php b/app/common/model/Teachers_strength/subject.php new file mode 100644 index 0000000..c418a39 --- /dev/null +++ b/app/common/model/Teachers_strength/subject.php @@ -0,0 +1,155 @@ + "int", + + "subject_guid" => "string", + + "subject_name" => "string", + + "subject_sort" => "int", + + "subject_create_time" => "datetime", + + "subject_create_user_guid" => "string", + + "subject_update_time" => "datetime", + + "subject_update_user_guid" => "string", + + "subject_delete_time" => "datetime", + + "subject_delete_user_guid" => "string", + + ]; + // 设置json类型字段 + protected $json = ['']; + // 开启自动写入时间戳字段 + protected $autoWriteTimestamp = 'datetime'; + // 创建时间 + protected $createTime = 'subject_create_time'; + // 修改时间 + protected $updateTime = 'subject_update_time'; + + + // excel导入/下载模板表头 + public const EXCELFIELD = [ +'subject_name' => '科目名字', +'subject_sort' => '排序', +]; + + + + /** + * 新增前 + */ + public static function onBeforeInsert(self $model): void + { + // self::checkRepeatData($model); + $model->completeCreateField(); + } + + /** + * 更新前 + */ + public static function onBeforeUpdate(self $model): void + { + // self::checkRepeatData($model); + $model->completeUpdateField(); + } + + /** + * 删除前 + */ + public static function onBeforeDelete(self $model): void + { + $model->completeDeleteField(); + } + + /** +* 导出Excel +*/ + public static function exportExcel($select) + { + $data = [[ +'科目名字', +'排序' +]]; + foreach ($select as $key => $val) { + $data[] = [ +$val['subject_name'], +$val['subject_sort'], +]; + } + $excel = (new Excel())->exporTsheet($data); + $excel->save('授课科目.xlsx'); + } + + /** +* 导入excel +*/ + public static function importExcel($file) + { + $msg = []; + + Db::startTrans(); + try { + $excel = new Excel($file); + $data = $excel->parseExcel( + Tool::getExcelRule(self::EXCELFIELD), + [ + 'titleLine' => [1] + ]); + if (!$data) throwErrorMsg('excel无数据', 1); + $msg = []; + foreach ($data as $line => $value) { + try { + $model = self::importExcelInit($value); + $msg[] = "{$line} 新增成功!
"; + } catch (\Throwable $th) { + $msg[] = "{$line} {$th->getMessage()}
"; + } + } + Db::commit(); + return implode(', ', $msg); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** +* 导入excel初始化 +*/ + public static function importExcelInit($value) + { + $subject_name = $value['subject_name'];$subject_sort = $value['subject_sort']; + return self::create([ +'subject_name' => $subject_name, +'subject_sort' => $subject_sort, +]); + } + + +}