v2.3修复

This commit is contained in:
2026-05-29 08:21:45 +08:00
parent 7dbe98ee02
commit 61bdaa6d70
3 changed files with 153 additions and 48 deletions

View File

@@ -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: