Merge remote-tracking branch 'origin/conding' into conding
This commit is contained in:
@@ -1,40 +1,33 @@
|
||||
from fastapi import HTTPException
|
||||
from pydantic import BaseModel, Field,field_validator, model_validator
|
||||
from datetime import date
|
||||
from typing import Optional
|
||||
|
||||
class EmploymentRequest(BaseModel):
|
||||
stu_id: int=Field(ge=1)
|
||||
email: str|None
|
||||
employment_opening_date:date
|
||||
offer_issuance_date:date
|
||||
company_name:str
|
||||
company_address:str|None
|
||||
salary:float
|
||||
|
||||
@field_validator('stu_id')
|
||||
@classmethod
|
||||
def check_stu_id(cls,v):
|
||||
if v <= 0:
|
||||
raise ValueError('输入有误,学生ID必须大于0')
|
||||
return v
|
||||
stu_id: int=Field(ge=1,description='学生编号')
|
||||
email: Optional[str] = Field(None, description='邮箱')
|
||||
employment_opening_date:Optional[date] = Field(None, description='就业开放日期')
|
||||
offer_issuance_date:Optional[date] = Field(None, description='offer下发日期')
|
||||
company_name:Optional[str] = Field(None, description='公司名称')
|
||||
company_address:Optional[str] = Field(None, description='公司地址')
|
||||
salary:Optional[float] = Field(None, description='薪资')
|
||||
|
||||
@model_validator(mode='after')
|
||||
def check_date(self):
|
||||
if self.employment_opening_date > self.offer_issuance_date:
|
||||
raise ValueError('offer下发日期不能早于就业开放日期')
|
||||
if self.employment_opening_date and self.offer_issuance_date:
|
||||
if self.employment_opening_date > self.offer_issuance_date:
|
||||
raise ValueError('offer下发日期不能早于就业开放日期')
|
||||
return self
|
||||
|
||||
class EmploymentResponse(BaseModel):
|
||||
code:int = 200
|
||||
detail:str = 'OK'
|
||||
emp_id:int
|
||||
stu_id: int
|
||||
stu_name:Optional[str] = None
|
||||
class_id:int
|
||||
email: str | None
|
||||
employment_opening_date: date
|
||||
offer_issuance_date: date
|
||||
company_name: str
|
||||
company_address: str | None
|
||||
salary: float
|
||||
emp_id: int
|
||||
stu_id:int
|
||||
stu_name: Optional[str] = None
|
||||
class_id: Optional[int] = None
|
||||
email: str|None = None
|
||||
employment_opening_date:date|None = None
|
||||
offer_issuance_date:date|None = None
|
||||
company_name:str|None = None
|
||||
company_address:str|None = None
|
||||
salary:float|None = None
|
||||
|
||||
@@ -1,21 +1,32 @@
|
||||
|
||||
from model.all_model import *
|
||||
from pydantic import BaseModel, Field, field_validator
|
||||
from fastapi import HTTPException,Form
|
||||
|
||||
|
||||
class GradeRequest(BaseModel):
|
||||
stu_id:int = Form(description="学生编号")
|
||||
exam_order:int = Form(description='考核序次')
|
||||
score:float = Form(description='成绩')
|
||||
stu_id:int = Field(description="学生编号")
|
||||
exam_order:int = Field(description='考核序次')
|
||||
score:float = Field(description='成绩')
|
||||
|
||||
@field_validator("score")
|
||||
def check_score(cls, v):
|
||||
if not (0 <= v <= 100):
|
||||
raise ValueError("成绩必须在0~100之间")
|
||||
return v
|
||||
|
||||
@field_validator("exam_order")
|
||||
def check_exam_order(cls, v):
|
||||
if v <= 0:
|
||||
raise ValueError("考核序次必须大于0")
|
||||
return v
|
||||
|
||||
class GradeResponse(BaseModel):
|
||||
code: int = 200
|
||||
detail: str = 'OK'
|
||||
score_id: float
|
||||
stu_id:int
|
||||
exam_order:int
|
||||
score:float
|
||||
|
||||
class GradeUpdate(BaseModel):
|
||||
exam_order: int | None = Form( description="考核序次")
|
||||
score: float | None = Form( description="成绩")
|
||||
# class GradeUpdate(BaseModel):
|
||||
# exam_order: int | None = Field( None,description="考核序次")
|
||||
# score: float | None = Field( None,description="成绩")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
from pydantic import BaseModel,Field
|
||||
from pydantic import BaseModel,field_serializer
|
||||
from datetime import date
|
||||
from typing import List, Optional
|
||||
|
||||
class AllStuResponse(BaseModel):
|
||||
all_cnt: int
|
||||
class_id: int
|
||||
gender: str | None
|
||||
cnt: int
|
||||
@@ -11,21 +11,61 @@ class AcgScoreResponse(BaseModel):
|
||||
class_id: int
|
||||
avg_score: float
|
||||
|
||||
class GetScoreResponse(BaseModel):
|
||||
code:int = 200
|
||||
detail:str = 'ok'
|
||||
score:float
|
||||
stu_name: str | None = None
|
||||
age: int | None = None
|
||||
gender: str | None = None
|
||||
native_place: str | None = None
|
||||
school: str | None = None
|
||||
major: str | None = None
|
||||
degree: str | None = None
|
||||
admission_date: date | None = None
|
||||
graduation_date: date | None = None
|
||||
progress: int = 0
|
||||
|
||||
@field_serializer('progress')
|
||||
def int_to_string(self, progress: int):
|
||||
d1 = {
|
||||
0: '学习中',
|
||||
1: '求职中',
|
||||
2: '已就业'
|
||||
}
|
||||
return d1.get(progress, '暂不明确')
|
||||
|
||||
class GetStuResponse(BaseModel):
|
||||
code:int = 200
|
||||
detail:str = 'ok'
|
||||
salary:float
|
||||
stu_name: str | None = None
|
||||
age: int | None = None
|
||||
gender: str | None = None
|
||||
native_place: str | None = None
|
||||
school: str | None = None
|
||||
major: str | None = None
|
||||
degree: str | None = None
|
||||
admission_date: date | None = None
|
||||
graduation_date: date | None = None
|
||||
progress: int = 0
|
||||
|
||||
@field_serializer('progress')
|
||||
def int_to_string(self, progress: int):
|
||||
d1 = {
|
||||
0: '学习中',
|
||||
1: '求职中',
|
||||
2: '已就业'
|
||||
}
|
||||
return d1.get(progress, '暂不明确')
|
||||
|
||||
class AvgDayResponse(BaseModel):
|
||||
class_id: int
|
||||
avg_days: str | None
|
||||
avg_days: float | None
|
||||
|
||||
class EmpRequest(BaseModel):
|
||||
class AllDayResponse(BaseModel):
|
||||
code:int = 200
|
||||
detail:str = 'ok'
|
||||
stu_id: int
|
||||
|
||||
class EmpItem(BaseModel):
|
||||
stu_id: int
|
||||
employment_opening_date:date | None
|
||||
offer_issuance_date:date | None
|
||||
employment_duration_day: int | None
|
||||
|
||||
class AllEmpResponse(BaseModel):
|
||||
code: int
|
||||
msg: str
|
||||
data: List[EmpItem]
|
||||
diff_days: int | None
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class StudentResponse(BaseModel):
|
||||
progress:int
|
||||
|
||||
@field_serializer('progress')
|
||||
def int_to_string(cls,progress:int):
|
||||
def int_to_string(self,progress:int):
|
||||
d1 ={
|
||||
0:'学习中',
|
||||
1:'求职中',
|
||||
@@ -69,7 +69,7 @@ class StugetResponse(BaseModel):
|
||||
progress: int = 0
|
||||
|
||||
@field_serializer('progress')
|
||||
def int_to_string(cls, progress: int):
|
||||
def int_to_string(self, progress: int):
|
||||
d1 = {
|
||||
0: '学习中',
|
||||
1: '求职中',
|
||||
|
||||
Reference in New Issue
Block a user