Files
test/app/api/__pycache__/student_api.cpython-311.pyc
T

50 lines
12 KiB
Plaintext
Raw Normal View History

2026-09-21 19:03:31 +08:00
§
W�ªjbãó6—dZddlmZddlmZddlmZmZmZm Z m
Z
m Z ddl m
Z
mZmZddlmZmZddlmZddlmZdd lmZdd
lmZdd lmZdd lmZmZm Z m!Z!dd
l"m#Z#ddl$m%Z%eddg¬¦«Z&e& 'deee d¬¦« dcddd8„¦«Z(e& )dee d9¬¦«ded>„¦«Z*e& 'd?d@¬A¦«dfdB„¦«Z+e& 'dCdD¬A¦«dgdE„¦«Z,e& )dFeedG¬¦« dhdidM„¦«Z-e& 'dNee dO¬¦«djdR„¦«Z.e& 'dSdT¬A¦«djdU„¦«Z/e& 0dNee dV¬¦«dkdX„¦«Z1e& 2dNdY¬A¦«dldZ„¦«Z3e& )d[d\¬A¦«dld]„¦«Z4e& )d^d_¬A¦«dmdb„¦«Z5dS)nu+学生管ç�†æŽ¥å�£ï¼ˆéœ€æ±‚ 2.1ã€�4.1)。é)Ú annotations)Ú Annotated)Ú APIRouterÚBodyÚFileÚQueryÚResponseÚ
UploadFile)Ú DbSessionÚ ReadAccountÚ WriteAccount)ÚRespÚok)ÚClazzDao)Ú
StudentDao)Ú Education)ÚSTUDENT_STATUS_TEXT)Ú
PageResult)Ú
StudentCreateÚStudentImportResultÚ
StudentOutÚ
StudentUpdate)Ú ScoreService)ÚStudentServicez /studentsu2.1 学生基本信æ�¯ç®¡ç�†)ÚprefixÚtagsÚuM学生列表(支æŒ�ç¼–å�·/å§“å��/ç�­çº§/状æ€�/性别/年龄区间筛选))Úresponse_modelÚsummaryéé
NÚidÚdescÚdbr Ú_r Úpageõ1Annotated[int, Query(ge=1, description='页ç �')]Ú page_sizeõ?Annotated[int, Query(ge=1, le=200, description='æ¯�页æ�¡æ•°')]ÚkeywordõdAnnotated[str | None, Query(description='模糊æ�œç´¢ï¼šå§“å��/å­¦å�·/电è¯�/专业/院校/ç±�è´¯')]Úclass_idõ4Annotated[int | None, Query(description='ç�­çº§ID')]Úclass_noõ8Annotated[str | None, Query(description='ç�­çº§ç¼–å�·')]ÚstatusõbAnnotated[int | None, Query(ge=1, le=3, description='状æ€� 1=在读 2=进入就业 3=已就业')]ÚgenderõJAnnotated[int | None, Query(ge=1, le=2, description='性别 1=ç”· 2=女')]Ú
advisor_idõ4Annotated[int | None, Query(description='顾问ID')]Ú educationõ2Annotated[str | None, Query(description='学历')]Úage_minõFAnnotated[int | None, Query(ge=1, le=100, description='年龄下é™�')]Úage_maxõFAnnotated[int | None, Query(ge=1, le=100, description='年龄上é™�')]Úorder_byõWAnnotated[str, Query(description='排åº�字段 id/stu_no/name/age/enroll_date/status')]ÚorderõIAnnotated[str, Query(pattern='^(asc|desc)$', description='排åº�æ–¹å�‘')]c
ó¶—tj|||||| |
| | |
|¬¦ « }tj||||¦«\}}}}t||||d„|D¦«dœ¦«S)N) r*r,r.r0r2r4r6r8r:r<r>có6—g|]}tj|¦«‘ŒS©)rÚmodel_validate)Ú.0Úss ú+D:\xwt0803\wolin_sms\app\api\student_api.pyú
<listcomp>z!list_students.<locals>.<listcomp>=s#€Ð>Ð>Ð>°1•*Ô+¨AÑ.Ô.Ð>Ð>Ð>ó)Útotalr&r(ÚpagesÚitems)rÚ
build_stmtÚpaginater)r$r%r&r(r*r,r.r0r2r4r6r8r:r<r>ÚstmtrKrIrJs rFÚ
list_studentsrOs�€õ, Ô Ø (°XÀfÐU[ب¸GÈWØ ð ñ ô €Dõ
!+Ô 3°B¸¸dÀIÑ NÔ NÑ€Eˆ5�$˜Ý
ØØØØØ>Ð>¸Ð>Ñ>Ô>ð ðñ ô ðrHu-创建学生(学å�·æŒ‰è§„则自动生æˆ�)Úaccountr
Úpayloadrcóä—tj||¦«}| ¦«| |¦«t t j|¦«d|j›d|j›�¬¦«S)Nu学生 u 创建æˆ�功,学å�· ©Úmsg) rÚcreateÚcommitÚrefreshrrrCÚnameÚstu_no)r$rPrQÚstudents rFÚcreate_studentr[Ash€åÔ# B¨Ñ0Ô0€G؇I‚I�K„K€K؇J‚JˆwÑÔÐÝ
�jÔ'¨Ñ0Ô0Ð6uÀÄ Ð6uÐ6uÐelÔesÐ6uÐ6uÐ vÑ vÔ vÐvrHz
/meta/optionsu0下拉选项:�级 / 顾问 / 学历 / 状�)rc
ót—ddlm}tj|tjdd¬¦«¦«}| || dd¬¦«¦«}t d„|D¦«d„|D¦«d „t D¦«d
„ttj ¦«¦«D¦«d œ¦«S) Nr)Ú
AdvisorDaor.Úasc)r<r>r"cóD—g|]}|j|j|j|jdœ‘ŒS)©r"rXr.Ú status_textr`)rDÚcs rFrGz#student_options.<locals>.<listcomp>Ps>€ð
ð
ð
àð”4 ¤°Q´ZÐPQÔP]Ð ^Ð ^ð
ð
ð
rHcó,—g|]}|j|jdœ‘ŒS)©r"rXrd)rDÚas rFrGz#student_options.<locals>.<listcomp>Ts$€ÐDÐDÐD°a˜AœD¨!¬&Ð1Ð1ÐDÐDÐDrHcó—g|] }|j‘Œ
SrB)Úvalue)rDÚes rFrGz#student_options.<locals>.<listcomp>Us€Ð2Ð2Ð2 1�q”wÐ2Ð2Ð2rHcó—g|]
\}}||dœ‘Œ S))rgÚlabelrB)rDÚkÚvs rFrGz#student_options.<locals>.<listcomp>Vs$€Ð^Ð^Ð^±$°!°Q˜q¨1Ð-Ð-Ð^Ð^Ð^rH)ÚclassesÚadvisorsÚ
educationsÚstatuses)
Úapp.dao.advisor_daor]rÚallrLrrÚsortedrrK)r$r%r]rmrns rFÚstudent_optionsrtIsÛ€à.Ð.Ð.Ð.Ð.Ð.åŒl˜2�xÔ2¸JÈeÐTÑTÔTÑUÔU€GØ�~Š~˜b *×"7Ò"7ÀÈUÐ"7Ñ"SÔ"SÑTÔT€HÝ
ð
ð
àð
ñ
ô
ðEÐD¸8ÐDÑDÔDØ2Ð2­ Ð2Ñ2Ô2Ø^Ð^½&ÕATÔAZÑA\ÔA\Ñ:]Ô:]Ð^Ñ^Ô^ððñ ô ðrHz/import/templateu下载 Excel 导入模æ�¿cóP—tj¦«}t|dddi¬¦«S)NzAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetzContent-Dispositionz3attachment; filename="student_import_template.xlsx")ÚcontentÚ
media_typeÚheaders)rÚbuild_import_templater )r%rvs rFÚdownload_templaterzZs6€åÔ2Ñ4Ô4€GÝ ØØVØ&Ð(]Ð^ð ñ ô ðrHz/importuHExcel 批é‡�导入学生(é€�行校验,失败行有行å�·å’ŒåŽŸå› ï¼‰FÚfileõCAnnotated[UploadFile, File(description='按模æ�¿å¡«å†™çš„ .xlsx')]Údry_runõ8Annotated[bool, Query(description='å�ªæ ¡éªŒä¸�è�½åº“')]cƒó:K—|jr,|j ¦« d¦«stjd¦«S| ¦«ƒd{V—†}t
j|||¬¦«}t|d|j ›d|j
›d�¬¦«S)N)z.xlsxz.xlsmuFå�ªæ”¯æŒ� .xlsx 文件,请先用「下载模æ�¿ã€�拿到标准格å¼�)r}u导入完æˆ�:æˆ�功 u 行,失败 u 行rS) ÚfilenameÚlowerÚendswithrÚfailÚreadrÚimport_from_excelrÚsuccessÚfailed)r$r%r{r}rvÚresults rFÚimport_studentsr‰ds¬èè€ð Œ=ðc ¤
× 3Ò 3Ñ 5Ô 5× >Ò >Ð?QÑ RÔ RðcÝŒyÐaÑbÔbÐbØ—I’I‘K”KÐÐÐÐÐЀGÝ