更新 database_manager.py
parent
e75cce4dc9
commit
e655b72a5c
|
|
@ -31,6 +31,22 @@ class DatabaseManager:
|
||||||
cursor.close()
|
cursor.close()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
def executemany(self, query, params_list):
|
||||||
|
conn = self.pool.get_connection()
|
||||||
|
try:
|
||||||
|
cursor = conn.cursor()
|
||||||
|
cursor.executemany(query, params_list) # 使用executemany代替execute
|
||||||
|
conn.commit() # 提交事务
|
||||||
|
return cursor.rowcount # 返回受影响的行数
|
||||||
|
except Exception as e:
|
||||||
|
# 可以在这里添加错误处理逻辑,例如打印错误日志、回滚事务等
|
||||||
|
print("An error occurred: ", e)
|
||||||
|
conn.rollback()
|
||||||
|
return None
|
||||||
|
finally:
|
||||||
|
cursor.close()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
def user_exists(self, phone_number):
|
def user_exists(self, phone_number):
|
||||||
sql = "SELECT 1 FROM user WHERE number=%s LIMIT 1"
|
sql = "SELECT 1 FROM user WHERE number=%s LIMIT 1"
|
||||||
result = self.fetch(sql, (phone_number,))
|
result = self.fetch(sql, (phone_number,))
|
||||||
|
|
@ -77,11 +93,13 @@ class DatabaseManager:
|
||||||
# 使用INNER JOIN连接teacher_class_course表和course表
|
# 使用INNER JOIN连接teacher_class_course表和course表
|
||||||
sql = """
|
sql = """
|
||||||
SELECT
|
SELECT
|
||||||
|
c.course_id,
|
||||||
c.course_name,
|
c.course_name,
|
||||||
c.course_code,
|
c.course_code,
|
||||||
c.credits,
|
c.credits,
|
||||||
tcc.class_name,
|
tcc.class_name,
|
||||||
m.major
|
m.major,
|
||||||
|
m.major_id
|
||||||
FROM
|
FROM
|
||||||
teacher_class_course tcc
|
teacher_class_course tcc
|
||||||
JOIN
|
JOIN
|
||||||
|
|
@ -128,6 +146,7 @@ WHERE
|
||||||
return self.execute(sql, data)
|
return self.execute(sql, data)
|
||||||
|
|
||||||
def get_course_name(self, student_number, day_of_week, period_id):
|
def get_course_name(self, student_number, day_of_week, period_id):
|
||||||
|
print(f"student_number: {student_number}, day_of_week: {day_of_week}, period_id: {period_id}")
|
||||||
# 从student表获取class_name
|
# 从student表获取class_name
|
||||||
sql_student = "SELECT class_name FROM student WHERE student_number = %s;"
|
sql_student = "SELECT class_name FROM student WHERE student_number = %s;"
|
||||||
class_name = self.fetch(sql_student, (student_number,))[0]['class_name']
|
class_name = self.fetch(sql_student, (student_number,))[0]['class_name']
|
||||||
|
|
@ -189,3 +208,26 @@ WHERE
|
||||||
time = get_time_by_ids(id)
|
time = get_time_by_ids(id)
|
||||||
data.append({"course_name": course_name, "time": time})
|
data.append({"course_name": course_name, "time": time})
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def teacher_sign_in(self, course_id, course_name, class_name, major_id, date, status):
|
||||||
|
student_sql = "SELECT student_number FROM student WHERE class_name = %s AND major_id = %s;"
|
||||||
|
student_sql_result = self.fetch(student_sql, (class_name, major_id))
|
||||||
|
|
||||||
|
# 检查是否有学生编号被返回
|
||||||
|
if student_sql_result:
|
||||||
|
values_list = []
|
||||||
|
for student in student_sql_result:
|
||||||
|
# 对于每个学生编号,创建一条记录的值元组
|
||||||
|
student_number = student['student_number']
|
||||||
|
values_list.append((student_number, course_id, course_name, date, status))
|
||||||
|
|
||||||
|
# 构建一次性插入多条记录的SQL语句
|
||||||
|
attendance_sql = "INSERT INTO attendance_record (student_number, course_id, course_name, date, status) VALUES (%s, %s, %s, %s, %s)"
|
||||||
|
|
||||||
|
# 使用executemany一次性插入多条记录
|
||||||
|
result = self.executemany(attendance_sql, values_list)
|
||||||
|
print(result)
|
||||||
|
return {"msg": "班级签到成功,签到人数:" + str(result)}
|
||||||
|
else:
|
||||||
|
# 如果没有学生编号,可能需要处理错误或记录日志
|
||||||
|
return {"msg": "当前班级专业没有学生"}
|
||||||
|
|
|
||||||
Reference in New Issue