Files
stu_teacher/dao/__pycache__/students_dao.cpython-310.pyc
T

38 lines
4.4 KiB
Plaintext
Raw Normal View History

2026-09-21 23:17:51 +08:00
o
Ü!±jJã@s~ddlmZddlmZmZddlmZddlmZm Z ddl
m Z ddl m
Z
ddlmZddlmZmZGd d
„d
ƒZd S) é)Údate)ÚOptionalÚTuple)Úor_)ÚSessionÚ
joinedload)ÚStudent)Ú Classinfo)ÚAdvisor)Ú
StudentAddÚ
StudentUpdatec@s`eZdZedededeefdd„ƒZedededeefdd„ƒZ edededee
fd d
„ƒZ eded edee fd d
„ƒZ
ededededefdd„ƒZedededefdd„ƒZededededeefdd„ƒZedededefdd„ƒZe        d#dedededeedeedeedeedeed eedeeeffd!d"„ƒZdS)$Ú
StudentDAOÚdbÚstu_idÚreturncCs| t¡ tj|k¡ ¡S)u]æ ¹æ�®å­¦å�·èŽ·å�–学生对象(用于主键唯一性检查,包å�«è¢«è½¯åˆ é™¤çš„对象))ÚqueryrÚfilterrÚfirst©rr©rúWC:\Users\Windows\WorkBuddy\2026-09-21-19-29-22\walin_student_system\dao\students_dao.pyÚinspect_student_id_unqsz!StudentDAO.inspect_student_id_unqcCó"| t¡ tj|ktjdk¡ ¡S)uE获å�–未被软删除的学生对象(用于外键校验与查询)r)rrrrÚ
is_deletedrrrrrÚ
get_activeóýzStudentDAO.get_activeÚclass_idcCr)u'ç�­çº§å¤–键校验(排除软删除)r)rr rrrr)rrrrrÚinspect_class_id_unqrzStudentDAO.inspect_class_id_unqÚ
advisor_idcCr)u'顾问外键校验(排除软删除)r)rr
rrrr)rrrrrÚinspect_advisor_id_unq'rz!StudentDAO.inspect_advisor_id_unqÚ enroll_timecCsn|jd|}| tj¡ tj|dktj|ddk¡ tj ¡¡ ¡}|r/|dddnd}|d|S)Ni'i'ré)ÚyearrrrrÚorder_byÚdescr)rr rÚprefixZ
max_stu_idÚseqrrrÚgenerate_stu_id4s
 þ ù zStudentDAO.generate_stu_idÚ student_datacCsh|jdd�}| dd¡d|vrt ||d|d¡|d<tdi|¤Ž}| |¡| ¡| |¡|S) u4新增学生;stu_id ä¸�传则按规则自动生æˆ�T)Ú exclude_nonerNrr rr)Ú
model_dumpÚpopr
r'rÚaddÚcommitÚrefresh)rr(ÚdataÚ
db_studentrrrÚ add_studentEs  ÿ

zStudentDAO.add_studentcCsVt ||¡}|dur dS|jddd� ¡D]
\}}t|||ƒq| ¡| |¡|S)u9更新学生信æ�¯ï¼ˆå�ªæ›´æ–°ä¼ å…¥çš„é�ž None 字段)NT)Ú
exclude_unsetr))r
rr*ÚitemsÚsetattrr-r.)rrr(r0ÚkeyÚvaluerrrÚupdateTs 
zStudentDAO.updatecCs*t ||¡}|dur dSd|_| ¡dS)uk
逻辑删除学生
:return: True �功 / False 学��存在或已被软删除
NFr!T)r
rrr-)rrr0rrrÚ delete_light`s zStudentDAO.delete_lightrédNÚskipÚlimitÚstu_nameÚgenderÚstatusÚ educationc Csà| t¡ ttjƒttjƒ¡ tjdk¡} |dur!|  tj|k¡} |r0|  tj  
d|›d�¡¡} |dur<|  tj |k¡} |rF|  tj |k¡} |rP|  tj
|k¡} |rZ|  tj|k¡} |  ¡}
|  tj¡ |¡ |¡ ¡} |
| fS)u¨