From 0557cd15c83dde99567d7b56e540a70eafa8a42a Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Tue, 26 Dec 2023 19:01:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20database=5Fmanager.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/database_manager.py | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/db/database_manager.py b/db/database_manager.py index 6c8a1cd..8cba93f 100644 --- a/db/database_manager.py +++ b/db/database_manager.py @@ -1,4 +1,3 @@ -import pymysql from db.connection import MySQLPool import bcrypt @@ -57,12 +56,12 @@ class DatabaseManager: # 使用bcrypt进行密码验证 if bcrypt.checkpw(password_attempt.encode('utf-8'), stored_hash.encode('utf-8')): # 密码匹配,返回登录成功,身份和状态 - return {'valid': True, 'identity': identity, 'status': status,'nickname': nickname} + return {'valid': True, 'identity': identity, 'status': status, 'nickname': nickname} # 密码不匹配或用户不存在,返回登录失败 return {'valid': False} - def get_meun(self, role): + def get_menu(self, role): sql = "SELECT menu_name,path FROM menu_items WHERE role=%s ORDER BY `order`" result = self.fetch(sql, (role,)) return result @@ -71,3 +70,28 @@ class DatabaseManager: sql = "SELECT course_name, course_code, instructor_name, credits, description FROM courses" result = self.fetch(sql) return result + + def get_current_teacher_courses(self, phone_number): + # 根据电话号码查询user_id + user_sql = "SELECT user_id FROM user WHERE phone_number = %s" + user_result = self.fetch(user_sql, (phone_number,)) + + if user_result: + user_id = user_result[0]['user_id'] + + # 使用联合查询获取该老师的所有课程信息及班级信息 + course_class_sql = """ + SELECT c.course_name, c.course_code, c.credits, cl.class_name, cl.major + FROM class_courses cc + JOIN courses c ON cc.course_id = c.course_id + JOIN classes cl ON cc.class_id = cl.class_id + WHERE cc.user_id = %s + """ + courses_classes_result = self.fetch(course_class_sql, (user_id,)) + + # 组织和返回信息 + if courses_classes_result: + # print(courses_classes_result) + return courses_classes_result + return [] +