修复考勤管理bug并加强了信息保护

This commit is contained in:
2026-04-27 01:15:03 +08:00
parent bf0314f098
commit 439c074534
16 changed files with 176 additions and 49 deletions

View File

@@ -83,20 +83,24 @@ class ConductModel:
start_date: str = None,
end_date: str = None,
student_id: int = None,
include_revoked: bool = True
include_revoked: bool = True,
related_type: str = None
) -> List[Dict[str, Any]]:
"""获取所有记录班主任/班长专用"""
"""获取所有记录(班主任/班长专用)"""
# 空字符串转为None
if start_date == "":
start_date = None
if end_date == "":
end_date = None
if related_type == "":
related_type = None
sql = """
SELECT cr.*, s.name as student_name, s.student_no, u.real_name as recorder_name
SELECT cr.*, s.name as student_name, s.student_no, u.real_name as recorder_name,
ru.real_name as revoker_name
FROM conduct_records cr
JOIN students s ON cr.student_id = s.student_id
JOIN users u ON cr.recorder_id = u.user_id
LEFT JOIN users ru ON cr.revoked_by = ru.user_id
WHERE 1=1
"""
if not include_revoked:
@@ -115,6 +119,10 @@ class ConductModel:
sql += " AND DATE(cr.created_at) <= %s"
params.append(end_date)
if related_type:
sql += " AND cr.related_type = %s"
params.append(related_type)
sql += " ORDER BY cr.created_at DESC LIMIT %s OFFSET %s"
params.extend([limit, offset])
@@ -128,7 +136,7 @@ class ConductModel:
page: int = 1,
page_size: int = 20
) -> Dict[str, Any]:
"""获取分组后的操行分记录同批次合并"""
"""获取分组后的操行分记录(同批次合并)"""
if start_date == "":
start_date = None
if end_date == "":
@@ -215,7 +223,7 @@ class ConductModel:
@staticmethod
async def restore_record(record_id: int, restorer_id: int) -> bool:
"""反撤销恢复已撤销的记录"""
"""反撤销(恢复)已撤销的记录"""
try:
sql = """
UPDATE conduct_records