更新 database_manager.py
parent
894d075d55
commit
9d68073dd5
|
|
@ -111,8 +111,34 @@ WHERE
|
|||
"""
|
||||
|
||||
# 执行查询并返回结果
|
||||
result = self.fetch(sql, (teacher_number,))
|
||||
return result
|
||||
class_student_sql = """SELECT course_id, course_name,class_name,major,major_id,major FROM class_student where teacher_number = %s;"""
|
||||
result1 = self.fetch(sql, (teacher_number,))
|
||||
result2 = self.fetch(class_student_sql, (teacher_number))
|
||||
|
||||
data = []
|
||||
# 遍历第一个结果集
|
||||
if result1:
|
||||
for row in result1:
|
||||
data.append({
|
||||
"course_id": row['course_id'],
|
||||
"course_name": row['course_name'],
|
||||
"class_name": row['class_name'],
|
||||
"major_id": row['major_id'],
|
||||
"major": row['major']
|
||||
})
|
||||
|
||||
# 遍历第二个结果集
|
||||
if result2:
|
||||
for row in result2:
|
||||
data.append({
|
||||
"course_id": row['course_id'],
|
||||
"course_name": row['course_name'],
|
||||
"class_name": row['class_name'],
|
||||
"major_id": row['major_id'],
|
||||
"major": row['major']
|
||||
})
|
||||
# 返回包含两个结果集信息的data列表
|
||||
return data
|
||||
|
||||
def get_course_type(self):
|
||||
sql = "SELECT course_name, course_type FROM course"
|
||||
|
|
@ -209,25 +235,62 @@ WHERE
|
|||
data.append({"course_name": course_name, "time": time})
|
||||
return data
|
||||
|
||||
def teacher_sign_in(self, course_id, course_name, class_name, major_id, date, status):
|
||||
def teacher_sign_in(self, course_id, course_name, class_name, major_id, date, status, teacher_number):
|
||||
class_student_sql = "SELECT student_number FROM class_student WHERE teacher_number = %s AND major_id = %s AND class_name = %s"
|
||||
class_student_result = self.fetch(class_student_sql, (teacher_number, major_id, class_name))
|
||||
|
||||
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))
|
||||
|
||||
values_list = []
|
||||
# 检查是否有学生编号被返回
|
||||
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))
|
||||
|
||||
if class_student_result:
|
||||
for class_student in class_student_result:
|
||||
# 注意这里变量名已经修改为class_student
|
||||
student_number = class_student['student_number']
|
||||
values_list.append((student_number, course_id, course_name, date, status))
|
||||
|
||||
# 如果没有任何学生编号,返回相应的消息
|
||||
if not values_list:
|
||||
return {"msg": "当前班级专业没有学生"}
|
||||
|
||||
# 构建一次性插入多条记录的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)
|
||||
print(f"Inserted rows: {result}")
|
||||
|
||||
return {"msg": "班级签到成功,签到人数:" + str(result)}
|
||||
else:
|
||||
# 如果没有学生编号,可能需要处理错误或记录日志
|
||||
return {"msg": "当前班级专业没有学生"}
|
||||
|
||||
def insert_into_class_student(self, class_students):
|
||||
try:
|
||||
values_list = [
|
||||
(
|
||||
cs['teacher_number'],
|
||||
cs['class_name'],
|
||||
cs['student_name'],
|
||||
cs['student_number'],
|
||||
cs['course_id'],
|
||||
cs['course_name'],
|
||||
cs['major_id'],
|
||||
cs['major']
|
||||
)
|
||||
for cs in class_students
|
||||
]
|
||||
|
||||
sql = """INSERT INTO class_student
|
||||
(teacher_number, class_name, student_name, student_number, course_id, course_name, major_id, major)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"""
|
||||
result = self.executemany(sql, values_list)
|
||||
return {"inserted_rows": result}
|
||||
except Exception as e:
|
||||
# 这里应根据实际情况记录日志或返回错误信息
|
||||
print(f"An error occurred: {e}")
|
||||
return {"error": str(e)}
|
||||
|
|
|
|||
Reference in New Issue