更新 database_manager.py

master
wangsiyuan 2023-12-26 19:01:14 +08:00
parent 5d66d17fe2
commit 0557cd15c8
1 changed files with 27 additions and 3 deletions

View File

@ -1,4 +1,3 @@
import pymysql
from db.connection import MySQLPool from db.connection import MySQLPool
import bcrypt import bcrypt
@ -57,12 +56,12 @@ class DatabaseManager:
# 使用bcrypt进行密码验证 # 使用bcrypt进行密码验证
if bcrypt.checkpw(password_attempt.encode('utf-8'), stored_hash.encode('utf-8')): 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} 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`" sql = "SELECT menu_name,path FROM menu_items WHERE role=%s ORDER BY `order`"
result = self.fetch(sql, (role,)) result = self.fetch(sql, (role,))
return result return result
@ -71,3 +70,28 @@ class DatabaseManager:
sql = "SELECT course_name, course_code, instructor_name, credits, description FROM courses" sql = "SELECT course_name, course_code, instructor_name, credits, description FROM courses"
result = self.fetch(sql) result = self.fetch(sql)
return result 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 []