From 4fc8a53f0629461fc1d360c79de1a388308f20e2 Mon Sep 17 00:00:00 2001 From: Dai Date: Sun, 21 Jul 2024 18:40:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E7=99=BB=E5=BD=95=E3=80=81?= =?UTF-8?q?=E5=AD=A6=E7=94=9F=E8=AF=BE=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/ParentController.php | 16 ------ .../controller/StudentParentController.php | 20 +++++++ .../controller/StudentScheduleController.php | 19 +++++++ app/common/service/StudentParentService.php | 52 ++++++++++++++++++ app/common/service/StudentScheduleService.php | 53 +++++++++++++++++++ app/middleware/ApiAuthCheckMiddleware.php | 14 +++-- 6 files changed, 154 insertions(+), 20 deletions(-) delete mode 100644 app/api/controller/ParentController.php create mode 100644 app/api/controller/StudentParentController.php create mode 100644 app/api/controller/StudentScheduleController.php create mode 100644 app/common/service/StudentParentService.php create mode 100644 app/common/service/StudentScheduleService.php diff --git a/app/api/controller/ParentController.php b/app/api/controller/ParentController.php deleted file mode 100644 index ad3ed7e..0000000 --- a/app/api/controller/ParentController.php +++ /dev/null @@ -1,16 +0,0 @@ -login($request->post()); + return $this->json($res); + } + +} \ No newline at end of file diff --git a/app/api/controller/StudentScheduleController.php b/app/api/controller/StudentScheduleController.php new file mode 100644 index 0000000..c048ced --- /dev/null +++ b/app/api/controller/StudentScheduleController.php @@ -0,0 +1,19 @@ +getScheduleTime($request); + return $this->json($result); + } + +} \ No newline at end of file diff --git a/app/common/service/StudentParentService.php b/app/common/service/StudentParentService.php new file mode 100644 index 0000000..f41b9ab --- /dev/null +++ b/app/common/service/StudentParentService.php @@ -0,0 +1,52 @@ + $request['account']])->findOrEmpty(); + if ($student->isEmpty()) { + throw new Exception('账号不存在'); + } + if (empty($request['password'])) { + throw new Exception('请填写密码'); + } + + if (md5($request['password'] . $student->salt) != $student->password) { + throw new Exception('密码错误,请填写正确的密码'); + } + + $token_data = [ + 'id' => $student->id, + 'role' => 'parent' + ]; + $token = JwtToken::generateToken($token_data); + return [ + 'code' => ResponseCode::SUCCESS, + 'data' => $token, + 'msg' => 'success' + ]; + + } catch (Exception $e) { + return [ + 'code' => ResponseCode::FAIL, + 'msg' => $e->getMessage() + ]; + } + } + + +} \ No newline at end of file diff --git a/app/common/service/StudentScheduleService.php b/app/common/service/StudentScheduleService.php new file mode 100644 index 0000000..ae5ab92 --- /dev/null +++ b/app/common/service/StudentScheduleService.php @@ -0,0 +1,53 @@ +student)) { + throw new Exception('请登陆后再查看'); + } + $student = Student::where(['id' => $request->student->id])->findOrEmpty(); + if ($student->isEmpty()) { + throw new Exception('未找到用户信息'); + } + + $data = $request->get(); + $schedule_time = StudentSchedule::where(['student_id' => $student->id, 'is_publish' => 1]); + if (isset($data['month']) && $data['month']) { + $schedule_time->where('month', $data['month']); + } + if (isset($data['date']) && $data['date']) { + $schedule_time->where('date', $data['date']); + } + + $list = $schedule_time->with(['teacher', 'subject'])->select()->toArray(); + + return [ + 'code' => ResponseCode::SUCCESS, + 'data' => $list, + 'msg' => 'success' + ]; + } catch (Exception $e) { + return [ + 'code' => ResponseCode::FAIL, + 'msg' => $e->getMessage() + ]; + } + } + +} \ No newline at end of file diff --git a/app/middleware/ApiAuthCheckMiddleware.php b/app/middleware/ApiAuthCheckMiddleware.php index 1c21a5e..c2812a3 100644 --- a/app/middleware/ApiAuthCheckMiddleware.php +++ b/app/middleware/ApiAuthCheckMiddleware.php @@ -22,9 +22,9 @@ class ApiAuthCheckMiddleware implements MiddlewareInterface public function process(Request $request, callable $handler): Response { - $request->user = new \stdClass(); + $request->student = new \stdClass(); $request->teacher = new \stdClass(); - $request->partents = new \stdClass(); + $request->partent = new \stdClass(); // 通过反射获取控制器哪些方法不需要登录和鉴权 $controller = new ReflectionClass($request->controller); @@ -37,7 +37,10 @@ class ApiAuthCheckMiddleware implements MiddlewareInterface try { $extend = JwtToken::getExtend(); if ($extend['role'] == 'student') { - + $request->student = \support\Db::table('student') + ->where('id', $extend['id']) + ->select('id','student_name','account','openid') + ->first(); } elseif ($extend['role'] == 'teacher') { $request->teacher = \support\Db::table('teacher') ->where('id', $extend['id']) @@ -45,7 +48,10 @@ class ApiAuthCheckMiddleware implements MiddlewareInterface ->first(); } elseif ($extend['role'] == 'parents') { - + $request->partent = \support\Db::table('student_parent') + ->where('id', $extend['id']) + ->select('id','parent_name','account','openid') + ->first(); } // $request->user = JwtToken::getUser();