v2.3修复
This commit is contained in:
@@ -33,25 +33,45 @@ class AdminService:
|
||||
"""获取所有学生列表"""
|
||||
offset = (page - 1) * page_size
|
||||
|
||||
sql = """
|
||||
SELECT student_id, student_no, name, total_points, parent_phone, dormitory_number, status
|
||||
FROM students
|
||||
WHERE status = 1
|
||||
"""
|
||||
params = []
|
||||
|
||||
if search:
|
||||
sql += " AND (student_no LIKE %s OR name LIKE %s)"
|
||||
params.extend([f"%{search}%", f"%{search}%"])
|
||||
|
||||
if dormitory_number:
|
||||
sql += " AND dormitory_number = %s"
|
||||
params.append(dormitory_number)
|
||||
|
||||
sql += " ORDER BY student_no LIMIT %s OFFSET %s"
|
||||
params.extend([page_size, offset])
|
||||
|
||||
students = await execute_query(sql, tuple(params))
|
||||
try:
|
||||
sql = """
|
||||
SELECT student_id, student_no, name, total_points, parent_phone, dormitory_number, status
|
||||
FROM students
|
||||
WHERE status = 1
|
||||
"""
|
||||
params = []
|
||||
|
||||
if search:
|
||||
sql += " AND (student_no LIKE %s OR name LIKE %s)"
|
||||
params.extend([f"%{search}%", f"%{search}%"])
|
||||
|
||||
if dormitory_number:
|
||||
sql += " AND dormitory_number = %s"
|
||||
params.append(dormitory_number)
|
||||
|
||||
sql += " ORDER BY student_no LIMIT %s OFFSET %s"
|
||||
params.extend([page_size, offset])
|
||||
|
||||
students = await execute_query(sql, tuple(params))
|
||||
has_dormitory = True
|
||||
except Exception as e:
|
||||
logger.warning(f"dormitory_number 列不存在,使用不含该字段的查询: {e}")
|
||||
sql = """
|
||||
SELECT student_id, student_no, name, total_points, parent_phone, status
|
||||
FROM students
|
||||
WHERE status = 1
|
||||
"""
|
||||
params = []
|
||||
|
||||
if search:
|
||||
sql += " AND (student_no LIKE %s OR name LIKE %s)"
|
||||
params.extend([f"%{search}%", f"%{search}%"])
|
||||
|
||||
sql += " ORDER BY student_no LIMIT %s OFFSET %s"
|
||||
params.extend([page_size, offset])
|
||||
|
||||
students = await execute_query(sql, tuple(params))
|
||||
has_dormitory = False
|
||||
|
||||
# 获取总数
|
||||
count_sql = "SELECT COUNT(*) as total FROM students WHERE status = 1"
|
||||
@@ -59,7 +79,7 @@ class AdminService:
|
||||
if search:
|
||||
count_sql += " AND (student_no LIKE %s OR name LIKE %s)"
|
||||
count_params.extend([f"%{search}%", f"%{search}%"])
|
||||
if dormitory_number:
|
||||
if dormitory_number and has_dormitory:
|
||||
count_sql += " AND dormitory_number = %s"
|
||||
count_params.append(dormitory_number)
|
||||
if count_params:
|
||||
|
||||
Reference in New Issue
Block a user