统计分析
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from datetime import date
|
||||
from typing import List, Optional
|
||||
|
||||
|
||||
class StudentInfo1(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
student_id: str
|
||||
student_name: str
|
||||
gender: str
|
||||
id_card: str
|
||||
birthday: Optional[date] = None
|
||||
ethnicity: Optional[str] = None
|
||||
region_id: Optional[str] = None
|
||||
phone: Optional[str] = None
|
||||
major: str
|
||||
class_id: str
|
||||
enrollment_date: Optional[date] = None
|
||||
graduation_date: Optional[date] = None
|
||||
student_status: str
|
||||
education_level: str
|
||||
|
||||
|
||||
class ResponseModel(BaseModel):
|
||||
code: int
|
||||
message: str = 'ok'
|
||||
total: int
|
||||
total_pages: int
|
||||
data: List[StudentInfo1]
|
||||
|
||||
|
||||
class ClassStatResponse(BaseModel):
|
||||
code: int = 200
|
||||
message: str = 'ok'
|
||||
class_id: str
|
||||
total_count: int
|
||||
male_count: int
|
||||
female_count: int
|
||||
|
||||
|
||||
class StudentInfo2(BaseModel):
|
||||
student_id: str
|
||||
student_name: str
|
||||
score: Optional[float] = None
|
||||
|
||||
|
||||
class ResponseModel1(BaseModel):
|
||||
code: int
|
||||
message: str = 'ok'
|
||||
total: int
|
||||
total_pages: int
|
||||
data: List[StudentInfo2]
|
||||
|
||||
|
||||
class StudentInfo3(BaseModel):
|
||||
student_id: str
|
||||
student_name: str
|
||||
fail_count: int
|
||||
|
||||
|
||||
class ResponseModel2(BaseModel):
|
||||
code: int
|
||||
message: str = 'ok'
|
||||
total: int
|
||||
total_pages: int
|
||||
data: List[StudentInfo3]
|
||||
|
||||
|
||||
class ClassExamAvg(BaseModel):
|
||||
course_id: str
|
||||
class_id: str
|
||||
class_name: str
|
||||
avg_score: float
|
||||
|
||||
|
||||
class ResponseModel3(BaseModel):
|
||||
code: int
|
||||
message: str = 'ok'
|
||||
total: int
|
||||
total_pages: int
|
||||
data: List[ClassExamAvg]
|
||||
|
||||
|
||||
class SalaryTop(BaseModel):
|
||||
student_name: str
|
||||
class_name: str
|
||||
company_name: str
|
||||
offer_date: Optional[date] = None
|
||||
salary: Optional[float] = None
|
||||
|
||||
|
||||
class ResponseModel4(BaseModel):
|
||||
code: int
|
||||
message: str = 'ok'
|
||||
data: List[SalaryTop]
|
||||
|
||||
|
||||
class TimeSize(BaseModel):
|
||||
student_id: str
|
||||
student_name: str
|
||||
offer_date: Optional[date] = None
|
||||
resume_open_date: Optional[date] = None
|
||||
time_size: Optional[int] = None
|
||||
|
||||
|
||||
class ResponseModel5(BaseModel):
|
||||
code: int
|
||||
message: str = 'ok'
|
||||
total: int
|
||||
total_pages: int
|
||||
data: List[TimeSize]
|
||||
|
||||
|
||||
class ClassAvgTimeSize(BaseModel):
|
||||
class_id: str
|
||||
class_name: str
|
||||
avg_time_size: float
|
||||
|
||||
|
||||
class ResponseModel6(BaseModel):
|
||||
code: int
|
||||
message: str = 'ok'
|
||||
total: int
|
||||
total_pages: int
|
||||
data: List[ClassAvgTimeSize]
|
||||
Reference in New Issue
Block a user